2011-08-08 112 views
1

我想構建一個使用CoreData和不同視圖控制器的應用程序(用於練習)。 我目前被阻止,因爲我無法設置將rightBarButtonItem添加到導航欄。 這裏是我正在使用的代碼(在AppDelegate,應用程序:didFinishLaunchingWithOptions :)。不能添加rightBarButtonItem到導航欄

PersoneTableViewController *ptvc = [[PersoneTableViewController alloc] initWithStyle:UITableViewStylePlain]; 
ptvc.managedObjectContext = self.managedObjectContext; 
ptvc.title = @"Persone"; 

UINavigationController *navCon = [[UINavigationController alloc] init]; 
[navCon pushViewController:ptvc animated:NO]; 

UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] 
            initWithBarButtonSystemItem:UIBarButtonSystemItemAdd 
            target:self 
            action:@selector(addPressed)]; 
navCon.navigationItem.rightBarButtonItem = barButtonItem; 
[barButtonItem release]; 

self.window.rootViewController = navCon; 

[navCon release]; 

[self.window makeKeyAndVisible]; 
return YES; 

但是,如果我在模擬器中運行應用程序,則不會顯示rightBarButtonItem。

+2

解決了,我只需要將barButtonItem添加到推送的ViewController,而不是navigationController。 – Francesco

回答

2

A UInavigationController將使用navigationItem從它的最上面的視圖控制器(第二到最上面的後退按鈕)。不是它自己的navigationItem就像你的例子。