2013-05-15 4 views
0

Я пытаюсь добавить UINavigationController в свой ViewController. И когда я запускаю приложение, он дает мне только черный экран и не запускает приложение.Добавление UINavigationController

Это мой AppDelegate.m:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

UIViewController *rootView = [[ViewController alloc] 
           initWithNibName:@"ViewController" 
           bundle:nil]; 
self.navController = [[UINavigationController alloc] initWithRootViewController:rootView]; 
[[self window] setRootViewController:self.navController]; 

//template code 
[self.window makeKeyAndVisible]; 
[rootView release]; 
return YES; 

} 

Я следую этой статье: http://simplecode.me/2011/09/04/an-introduction-to-uinavigationcontroller/

Что случилось? Благодаря!

+0

Разве у вас нет «ViewController * rootView» вместо «UIViewController * rootView»? Мне все равно. Сказав это, я бы предложил использовать ARC и раскадровки, чтобы сделать все немного проще. – Fogmeister

+0

Да, отлично выглядит для меня. О ARC и раскадровки, у меня пока нет опыта. –

+0

По-видимому, ваш класс ViewController называется «ViewController». Я предполагаю, что это subview UIViewControlelr и имеет файл ViewController.xib, в котором вы создаете фактический вид в построителе интерфейса? –

ответ

0

Просто проверяю с проектом и использовать этот код ...

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 
    self.viewController = [[CCViewController alloc] initWithNibName:@"CCViewController" bundle:nil]; 
    UINavigationController *navControl = [[UINavigationController alloc] initWithRootViewController:self.viewController]; 
    self.window.rootViewController = navControl; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

работал отлично.

+0

Отлично. Это то что мне нужно! Большое спасибо! –

1

Попытайтесь использовать ARC adn раскадровки Если вы ориентируетесь на IOS 5+, было бы намного проще, и вам даже не пришлось бы кодировать, просто перетащите навигационный контроллер в раскадровку.

нету тест, но попробуйте это:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

UIViewController *rootView = [[ViewController alloc] 
           initWithNibName:@"ViewController" 
           bundle:nil]; 
UINavigationController *navigationController=[[UINavigationController alloc] initWithRootViewController:rootView]; 
     self.window.rootViewController =nil; 
     self.window.rootViewController = navigationController; 
     [self.window makeKeyAndVisible]; 
return YES; 

} 
+0

Ничего. Все еще даю мне черный экран. –

+0

Как я могу работать со Storyboard и ARC? –

+0

Вы уверены, что ваш 'nibname' правильно установлен в' ViewController' в 'interfacebuilder'? также я бы предложил вам этот вопрос: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1 –