كيفية التعامل مع قطعتين تذهبان إلى نفس وحدة التحكم في العرض؟

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

  •  09-12-2019
  •  | 
  •  

سؤال

لدي تطبيق iPhone أقوم حاليًا بإنشائه في XCode 4.3 باستخدام Storyboard.لدي وحدة تحكم عرض "جذر" مع سلسلتين (2) لوحدة تحكم العرض التي تحتوي على UIWebView.أريد أن أكون قادرًا على تحديد المقطع (لقد قمت بالفعل بتعيين معرفات فريدة لكلا المقطعين) حتى أتمكن من "دفع" المحتوى الصحيح إلى UIWebView، بناءً على المقطع الذي تم تنشيطه في وحدة تحكم العرض "الجذر".

أعتقد أنه يتعين علي استخدام طريقة "prepareForSegue"، لكن لا أعرف إلى أين ستذهب.أين يمكنني معرفة كيفية التعامل مع مقطعين يذهبان إلى نفس وحدة التحكم في العرض؟(لقد بحثت في Google ولم أجد شيئًا مناسبًا لموقفي).

هذا هو الكود الذي أستخدمه:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    if ([segue.identifier isEqualToString:@"helpSegue"]) {
        NSLog(@"helpSegue");
    }
    else if ([segue.identifier isEqualToString:@"reportSegue"]) {
        NSLog(@"reportSegue");
    }
}
هل كانت مفيدة؟

المحلول

لن تتصل -prepareForSegue:sender:, ، ستقوم بتنفيذه في وحدة تحكم العرض الخاصة بك.في تجاوز هذه الطريقة، يمكنك التحقق من المقطع identifier الخاصية (يتم تمرير السلسلة كمعلمة):

if ([segue.identifier isEqualToString:@"Segue Numero Uno"]) {
    // do something here
}

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

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

  • هل وحدة التحكم في العرض في لوحة العمل الخاصة بك (أي؟(الذي تؤدي إليه المقاطع المعنية) تم إعداده كمثال للفئة التي تنفذ ذلك -prepareForSegue:sender:؟تحقق من نوع وحدة التحكم في لوحة العمل.

  • قم بتنفيذ السلاسل التي تستخدمها في التعليمات البرمجية الخاصة بك بالضبط هل تتطابق مع المعرفات التي قمت بتعيينها لمقاطعك في لوحة العمل؟يتم احتساب الأحرف الكبيرة والتهجئة وعلامات الترقيم والمسافة البيضاء.

  • هو الخاص بك -prepareForSegue:sender: يتم استدعاء الطريقة؟ضع نقطة توقف هناك وقم بتصحيح الأخطاء.إذا تم استدعاؤه، فما هو المعرف الخاص به segue التي مرت في؟إذا لم يتم استدعاؤها، فإن وحدة التحكم في العرض في لوحة العمل لا تحتوي على الفئة المناسبة.

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