مطالعہ کے نوٹ: addChildViewController

Study Notes Addchildviewcontroller



اس کے بارے میں بات کرتے ہوئے ، ایپل نے آئی او ایس 5 میں ایڈ شیلڈ ویوکونٹرولر طریقہ مہیا کیا ، لیکن میں نے اسے کبھی استعمال نہیں کیا ، اور مجھے اس کے بارے میں زیادہ معلومات نہیں ہیں۔ مجھے اس کا استعمال کرنے اور اسے احتیاط سے سیکھنے کا موقع ملا ہے۔

طریقہ کی تعریف

تیزی سے ، متعلقہ طریقہ یہ ہے:



/* If the child controller has a different parent controller, it will first be removed from its current parent by calling removeFromParentViewController. If this method is overridden then the super implementation must be called. The general idea is: if the added VC already has a parent VC, it will be removed from the parent VC before calling this method, and then added to the current VC as the child VC of the current VC. */ @available(iOS 5.0, *) open func addChild(_ childController: UIViewController)

اس طریقہ کے بارے میں ایپل کی وضاحت:



اس طریقہ کار سے موجودہ قابو کنٹرولر اور چلڈکانٹرلر پیرامیٹر میں موجود آبجیکٹ کے درمیان والدین کے ساتھ تعلقات پیدا ہوتے ہیں۔ یہ نظریہ اس وقت ضروری ہے جب موجودہ قول کنٹرولر کے مشمولات میں بچوں کے نظارے کے کنٹرولر کے نظریئے کو سرایت کریں۔ اگر نیا چائلڈ ویو کنٹرولر پہلے ہی کنٹینر ویو کنٹرولر کا بچہ ہے تو ، اسے شامل کرنے سے پہلے اس کنٹینر سے ہٹا دیا جاتا ہے۔
یہ طریقہ صرف کسٹم کنٹینر ویو کنٹرولر کے نفاذ کے ذریعہ پکارا جانا ہے۔ اگر آپ اس طریقہ کو اوور رائڈ کرتے ہیں تو ، آپ کو اپنے نفاذ میں سپر کال کرنا چاہئے۔

عام خیال یہ ہے:
یہ طریقہ موجودہ VC اور شامل VC کے مابین والدین کے ساتھ تعلقات پیدا کرتا ہے۔ موجودہ وی ​​سی ویو میں وی سی ویو کو شامل کرتے وقت ، آپ کو پہلے اس والدین کے ساتھ تعلقات کو ایڈچلڈ طریقہ استعمال کرکے شامل کرنا چاہئے۔ اگر چائلڈ وائس چانسلر کے پاس پہلے سے ہی والدین کا وائس چانسلر موجود ہے تو پھر اس طریقے کو فون کرنے سے بچے کے سابقہ ​​کو سابقہ ​​والدین وائس چانسلر سے ہٹا دیا جائے گا اور پھر اسے موجودہ وی ​​سی میں بطور چائلڈ وائس میں شامل کیا جائے گا۔
اس طریقہ کار کو صرف کسٹم وی سی میں بلایا جائے گا۔ اگر آپ اس طریقے کو ختم کرنے کا ارادہ رکھتے ہیں تو آپ کو اس طریقہ کار کو سپر کرنا ہوگا۔



دوسرے لفظوں میں ، ایپل کا iOS5 API addChild (_ childController: UIViewController) طریقہ کا اضافہ کرتا ہے ، اور امید کرتا ہے کہ جب ہم addSubview استعمال کرتے ہیں تو ، ہم AddChild (vc) کے طریقہ کار کو بھی موجودہ ViewController مینجمنٹ کے سب ویو سے مربوط ویو کو کنٹرول کرنے والے کو شامل کرتے ہیں۔
ان سب ویوز کیلئے جنہیں فی الحال ظاہر کرنے کی ضرورت نہیں ہے ، صرف وائس کنٹولر کو صرف ایڈ چییل کے ذریعہ شامل کریں (_ چائلڈ کنٹرولر: یو آئی ویوکانٹرلر) جب منتقلی کی ضرورت ہو تو منتقلی سے فریم ویو کنٹرولٹر طریقہ پر کال کریں۔ اسے بنیادی ویو کنٹرولر میں شامل کریں۔
ایسا کرنے کے فوائد:

1. بلا شبہ ، صفحہ میں منطق زیادہ واضح ہے۔ متعلقہ نظریہ اسی طرح کے ViewController سے مساوی ہے۔
2. جب ایک جائزہ نہیں دکھایا جاتا ہے ، تو اس پر بوجھ نہیں پڑتا ہے ، جس سے میموری کا استعمال کم ہوگا۔
When. جب میموری تنگ ہوجائے تو ، بغیر لوڈ کے ویو کو پہلے جاری کیا جائے گا ، پروگرام کے میموری کی رہائی کے طریقہ کار کو بہتر بناتے ہوئے۔

  • آئی او ایس 5 میں ، ویو کنٹرولر میں درج ذیل طریقوں کو شامل کیا گیا ہے۔
  • ایڈ چائلڈکیو کنٹرولر:
  • ہٹائیں فریم پرنٹ ویو کنٹرولر
  • منتقلیفورمکیو کنٹرولر: ٹو ویوکنٹرولر: دورانیہ: اختیارات: متحرک تصاویر: تکمیل:
  • willMoveToParentViewController:
  • didMoveToParentViewController:
استعمال ہونے والے مناظر:

ہماری روز مرہ کی ترقی میں ، اکثر ٹیبز کو تبدیل کرکے مختلف صفحات کے مابین سوئچ کرنے کی ضرورت ہوتی ہے۔ اگر آپ ان خیالات کو کسی کنٹرولر میں منظم کرتے ہیں تو ، ایسا لگتا ہے کہ کوڈ بہت جوڑا ہوا ہے اور ایپل کے ایم وی سی پیٹرن سے میل نہیں کھاتا ہے۔ ایپل ایک کنٹرولر کی سفارش کرتا ہے۔ کسی نظارے کا نظم کریں۔ کچھ لوگوں کا مشورہ ہے کہ [self.view addSubview: viewController.view] جیسے طریقہ کار کو دوسرے کنٹرولر کے ذریعہ کنٹرول کیا جاتا ہے ، لیکن اس سے ایک نیا مسئلہ پیدا ہوجائے گا: ویو کنٹرولر کے نقطہ نظر میں براہ راست شامل کردہ سب ویو کو عام طور پر منظور نہیں کیا جائے گا۔ جیسے: گردش ، ٹچ ، وغیرہ ، کوکو ٹوچ کے ذریعہ تیار کردہ ایم وی سی اصول کے خلاف ایک خطرناک کاروائی ہے ، ویو کو کنٹرول کرنے والے کو صرف ایک نظریاتی درجہ بندی کا انتظام کرنا چاہئے۔ اسی طرح ، ہمیں ایک اور دشواری پر بھی غور کرنا ہوگا: ان میں سے زیادہ تر نظارے ہمیشہ انٹرفیس پر نہیں ہوں گے ، لیکن صرف کچھ صورتوں میں ظاہر ہوں گے ، جیسے لاگ ان فیل ہونے کا فوری نقطہ نظر ، اٹیچمنٹ کو کامیابی کے ساتھ اپلوڈ کرنے کا فوری نقطہ نظر ، اور اشارہ۔ نیٹ ورک کی ناکامی کا نظارہ۔ رکو۔ لیکن اگرچہ یہ خیالات شاذ و نادر ہی ہیں ، ہم ان کو اکثر یاد میں رکھتے ہیں۔



چائلڈ وائس چانسلر کے لائف سائیکل کے بارے میں:

جب چائلڈ ویو کنٹرولر کو کسی بھی والدین ویو کنٹرولر میں شامل نہیں کیا جاتا ہے ، اگر چائلڈ ویو کنٹرولر کا نظارہ کسی اور نظارے میں شامل کیا جاتا ہے تو ، ویو ایپلیئر اور ویو ڈائیڈ ایئر کو عام طور پر کہا جائے گا۔ لیکن جب چائلڈ ویوکنٹرولر کو پیرنٹ ویو کنٹرولر میں شامل کیا جاتا ہے تو ، والٹ ویو کنٹرولر کے ویو وئل ایئر اور ویو ڈایڈ ایئر کو ہم آہنگ کیا جاتا ہے۔

لہذا توجہ دینے کے لئے مندرجہ ذیل سوالات کال کریں:

پہلے کال ایڈسوب ویو ، ویو وِل ایئر اور ویو ڈِڈ ایپئر کو ایک بار کال کی جائے گی ، پھر ایڈ وِل ویوکونٹرلر ، والدین کے قول کنٹرولر کے ایونٹ کے ساتھ ہم آہنگ ہوجاتا ہے ، یعنی جب والدین ویو کنٹرولر کا ویو ڈائیڈ ایئر کہا جاتا ہے ، تب چائلڈ ویو کنٹرولر کا ویو ڈائیڈ ایئر طریقہ دوبارہ بلایا جائے گا۔ تو ویو ڈائیڈ ایئر طریقہ کو دو بار کہا جاتا ہے۔

پہلا کال ایڈ چائلڈیوکیو کنٹرولر ، چائلڈ ویوکنٹرولر کا واقعہ پیرنٹ ویو کنٹرولر کے ساتھ ہم آہنگ ہوتا ہے۔ جب والدین ویو کنٹرولر کا ویو ڈائیڈ ایئر کہا جاتا ہے تو ، چائلڈ ویوکنٹرولر کا ویو ڈائیڈ ایئر طریقہ ایک بار کال کیا جائے گا ، اور پھر ایڈ اسپیس کال پر ویو اپل اور ویو ڈایڈ ایئر کو متحرک نہیں کیا جائے گا۔