سؤال

أحاول دفع عرض جديد على وحدة تحكم التنقل الخاصة بي باستخدام:

    -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [myTableView release];
 [self.navigationController pushViewController:myTableView animated:YES];
}

أنا أواجه الخطأ التالي:

2010-02-25 21:19:57.717 CoC[3399:20b] *** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660
2010-02-25 21:19:57.718 CoC[3399:20b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIViewController switchPage:]: unrecognized selector sent to instance 0xf1a660'
هل كانت مفيدة؟

المحلول

أنت تصدر كائنًا قمت بتخصيصه للتو وهو أمر لا معنى له.

 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
     [myTableView release];

حرر mytableview بعد دفعه على المكدس

نصائح أخرى

نداء الإصدار بعد الضغط.

2010-02-25 21: 19: 57.717 COC [3399: 20b] * **-[UiviewController SwitchPage:]: تم إرسال محدد غير معترف به إلى مثيل 0xf1a660

تحطمك ليس بسبب الكود الذي ذكرته. ولكن هناك خطأ في رمزك مثل الإصدار و Thenpush. تغييره على النحو التالي:

 -(IBAction)switchPage:(id)sender
{
 MyTableViewController *myTableView = [[CMyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
 [self.navigationController pushViewController:myTableView animated:YES];
 [myTableView release];
}

أعتقد أن الكائن الذي يدعو "SwitchPage:" الطريقة تواجه بعض المشكلة. تحقق من ذلك أو إظهار الاحتجاج بهذه الطريقة لأي مساعدة

التحيات ، مانجوناث

أعلاه على ما يرام ، عندما يتم دفع وحدة التحكم الفرعية في مكدس NAV ، يجب زيادة عدد الاحتفاظ ، ثم يجب عليك إطلاقه بعد عملية الدفع.

هل أنت متأكد من أنك لست بحاجة إلى مبادلة خطين الماضيين؟ أول وحدة تحكم ، ثم حررها ليس بالعكس ... :)

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

-(IBAction)switchPage:(id)sender
{
     MyTableViewController *myTableView = [[MyTableViewController alloc] initWithNibName:@"MyTableView" bundle:[NSBundle mainBundle]];
    [self.navigationController pushViewController:myTableView animated:YES];
    [myTableView release];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top