2013-11-01 2 views
1

Ниже ошибка получения запрашивающей для кода на UINavigationalControllerЦель кодекса UINavigational контроллера, чтобы избежать «NSInvalidArgumentException»

2013-11-02 09:30:33.727 NavigationalCntrlApp[465:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Pushing a navigation controller is not supported' 
    *** First throw call stack: 
    (
     0 CoreFoundation      0x0173a5e4 __exceptionPreprocess + 180 
     1 libobjc.A.dylib      0x014bd8b6 objc_exception_throw + 44 
     2 UIKit        0x003676bd __71-[UINavigationController pushViewController:transition:forceImmediate:]_block_invoke + 0 
     3 UIKit        0x003670b5 -[UINavigationController pushViewController:animated:] + 325 
     4 UIKit        0x003557d7 -[UINavigationController initWithRootViewController:] + 122 
     5 NavigationalCntrlApp    0x00002c91 -[AppDelegate application:didFinishLaunchingWithOptions:] + 673 
     6 UIKit        0x00225355 -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] + 309 
     7 UIKit        0x00225b95 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1536 
     8 UIKit        0x0022a3a8 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 824 
     9 UIKit        0x0023e87c -[UIApplication handleEvent:withNewEvent:] + 3447 
     10 UIKit        0x0023ede9 -[UIApplication sendEvent:] + 85 
     11 UIKit        0x0022c025 _UIApplicationHandleEvent + 736 
     12 GraphicsServices     0x036e12f6 _PurpleEventCallback + 776 
     13 GraphicsServices     0x036e0e01 PurpleEventCallback + 46 
     14 CoreFoundation      0x016b5d65 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 53 
     15 CoreFoundation      0x016b5a9b __CFRunLoopDoSource1 + 523 
     16 CoreFoundation      0x016e077c __CFRunLoopRun + 2156 
     17 CoreFoundation      0x016dfac3 CFRunLoopRunSpecific + 467 
     18 CoreFoundation      0x016df8db CFRunLoopRunInMode + 123 
     19 UIKit        0x00229add -[UIApplication _run] + 840 
     20 UIKit        0x0022bd3b UIApplicationMain + 1225 
     21 NavigationalCntrlApp    0x0000304d main + 141 
     22 libdyld.dylib      0x01d7870d start + 1 
     23 ???         0x00000001 0x0 + 1 
    ) 
    libc++abi.dylib: terminating with uncaught exception of type NSException 
    (lldb) 

Может кто-нибудь помочь мне, почему эта ошибка становится, тот же код работает в Xcode 4.3, но он бросает ошибку в Xcode 5.

+0

Возможно, какой-то код. Если вы прочитали ошибку, это связано с тем, как вы нажимаете свой контроллер просмотра. – logixologist

+0

Я новичок в кодировании iOS и изучении себя, не могли бы вы поделиться кодом для UINavagationController, – Srini

+0

Ниже код Я использую - (UITableViewCell *) tableView: (UITableView *) tableView cellForRowAtIndexPath: (NSIndexPath *) indexPath; { UITableViewCell * tablecell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier: @ "tablecell"]; if (indexPath.section == 0) { tablecell.textLabel.text = [tablelist objectAtIndex: indexPath.row]; UIImageView * imageview = [[UIImageView alloc] initWithFrame: CGRectMake (100, 5, 100, 70)]; [tablecell addSubview: imageview]; } – Srini

ответ

0

Похоже, что вы пытаетесь установить navigationController как rootviewcontroller для navigationController. Это не позволило

Если я правильно, вы делаете это:

// 1. Make new UIViewController 
UIViewController *vc = [[UIViewController alloc] init]; 
// 2. Make UINavigationController 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; 
// 3. Set navigationController as rootViewController of a new navigationController 
UINavigationController *nav2 = [[UINavigationController alloc] initWithRootViewController:nav]; 

В то время как вы должны сделать это:

// 1. Make New UIViewController 
UIViewController *vc = [[UIViewController alloc] init]; 
// 2. Set it as rootviewcontroller of a new navigationController 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; 
[self.navigationController pushViewController:nav]; 

Если бы я был неправ по вашей проблеме, пожалуйста, напишите некоторые дополнительный код в вашем вопросе.

Смежные вопросы