كيف أقوم بإعداد وحدة تحكم عرض كمندوب لشيءين (مثل موقع المبلغ والمقياس)؟

StackOverflow https://stackoverflow.com/questions/1106852

سؤال

أنا آسف إذا كان عنوان سؤالي يبدو غير مطلعا بشكل أساسي. اسمحوا لي أن أشرح ما أحاول القيام به.

لقد حددت Subclass UIViewController التالية، والتي تطلق موقع LocationManager، ولديها زر تسجيل البدء لحفظ مسار GPS.

الآن أود أيضا إطلاق النار على مقياس التسارع والسماح للمستخدم بتسجيل ذلك أيضا.

فرعية ViewController Subclass هو مندوب المكاتب، إذن ما الذي يجب أن أستخدمه من مفوض التسارع؟ هل يمكنني استخدام نفس الرأي، أو هل أحتاج إلى تحديد فرعية فرعية؟

فيما يلي واجهة Subclass UiviewController الخاصة بي:

@interface RootViewController : UIViewController <CLLocationManagerDelegate> {
    NSMutableArray *eventsArray;
    NSManagedObjectContext *managedObjectContext;
    CLLocationManager *locationManager;
    BOOL recording;
    UILabel *pointLabel;
    UIButton *startStop;
}

-(void)toggleButton;

يمكنني نشر المزيد من التعليمات البرمجية إذا لزم الأمر، لكنني أعتقد أن هذا هو كل ما ينطبق. شكرا لمساعدتكم، أنا فقط الدخول إلى تطوير iPhone، وخبرتي، إذا كان لدي أي، أكاذيب لغات برمجة أقل من المؤشر :)

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

المحلول

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

أبعد من ذلك، ستقوم ببساطة بإعداد وحدة تحكم الخاصة بك ليتم تفويضها لكليهما، بنفس الطريقة التي تحددها لتفويضها لأحد:

@interface Controller : UIViewController
    <CLLocationManagerDelegate, AccelerometerDelegate>
{
    ...
}

و لاحقا:

[myLocationManager setDelegate:myController];
[myAccelerometer setDelegate:myController];

يرجى إسمح التسمية. لا أعرف الجزء العلوي من رأسي ما هي الأسماء لتسارع دروس التسارع والمكان الذي تحتاجه. لقد استخدمت للتو أي أسماء وصفية تعطلت :)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top