سؤال

يحتوي أحد وحدات تحكم العرض الخاصة بي على العديد من أدوات التحكم ، وأريد أن تكون وحدة تحكم عرض أخرى قادرة على الوصول إلى قيم UISwitches لـ IF/والبيانات. كيف أفعل هذا في Objective-C؟

هل كانت مفيدة؟

المحلول

ربما لا تريد أن تفعل ذلك. إذا كنت تريد أن يكون لـ ViewController ثانية سلوكًا مختلفًا استنادًا إلى المفاتيح التي تم إلقاؤها في البداية ، فيجب عليك فقط ربط المفاتيح إلى الإعدادات الافتراضية للمستخدم ، والتي يمكنك قراءتها في أي مكان في التطبيق الخاص بك.

http://icodeblog.com/2008/10/03/iphone-programming-tutorial-savingrieving-data-using-nsuserdefaults/

نصائح أخرى

هذه فكرة سيئة لأنها ستخلق تبعية غير ضرورية بين وحدات التحكم في العرض.

إذا كنت لا تزال ترغب في القيام بذلك ، فما عليك سوى تمرير مرجع لوحدة التحكم الأولى مع مفاتيح وحدة التحكم في العرض الثاني. بعد ذلك ، في وحدة التحكم الثانية الخاصة بك ، ما عليك سوى الوصول إلى UISwitch المقابلة on منشأه.

ومع ذلك ، بدلاً من السير في هذا الطريق ، أقترح بشدة أن تقوم بإنشاء فصل مخصص لعقد الحالة المنطقية لكل Uiswitch. يمكن أن يكون مثيل هذه الفئة إما أن يكون مفردة ، أو متضمنة في مندوب التطبيق. انظر الى هذا إجابه لكيفية القيام بذلك مع كلا النهجين.

الفئة المخصصة أفضل لأن UisWitch هو مجرد وسيلة لتمثيل بعض الممتلكات في نموذج البيانات الخاص بك. وإذا قمت غدًا باستبدال UISwitch بعنصر تحكم خيالي آخر ، فيجب أن تستمر وحدة التحكم في العرض الثاني في العمل. كل من وحدات التحكم في العرض لديها إشارة إلى كائن من هذه الفئة المخصصة. كلما كان هناك تغيير ، تقوم وحدة التحكم الأولى بتحديث هذا الكائن.

يمكن أن تكون واجهة الفصل مثل هذا:

@interface DataValues : NSObject {
    BOOL first;
    BOOL second;
    BOOL third;
}

@property BOOL first;
@property BOOL second;
@property BOOL third;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top