2013-10-06 53 views
0

所以在我的主窗口中,我有這兩個按鈕「設置」中的一個(leftBarButtonItem)&「I」(信息按鈕,rightBarButtonItem)」UINavigationItem - 沒有「免費」後退按鈕爲我的按鈕

當我按下信息按鈕,我得到了「自由」後退按鈕,但我有以編程的設置按鈕,創建一個?這是爲什麼?

這裏是我編程的按鈕viewDidLoad中

UIBarButtonItem *settingsBarButtonItem =[[UIBarButtonItem alloc]initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(settings:)]; 
self.navigationItem.leftBarButtonItem = settingsBarButtonItem; 

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
CGRect frame = infoButton.frame; 
frame.size.width = 40.0f; 
infoButton.frame = frame; 
[infoButton addTarget:self action:@selector(about:) forControlEvents:UIControlEventTouchUpInside]; 
butInfo = [[UIBarButtonItem alloc] initWithCustomView:infoButton]; 
self.navigationItem.rightBarButtonItem = butInfo; 

回答

0

怎麼樣ViewController調用? 通常,只有當視圖控制器被父ViewController壓入導航堆棧時,纔會出現「Free」後退按鈕。 這可以通過Segue(如果您使用Storyboard)或通過 - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated(消息到UINavigationController)來實現。

從UINavigationController的文檔: 如果頂層視圖控制器不具有自定義左側欄按鈕項目,但以前的視圖控制器的導航項目都有一個有效的項目在其backBarButtonItem財產,導航欄顯示的是項目。

如果任一視圖控制器未指定自定義欄按鈕項目,則會使用默認後退按鈕並將其標題設置爲前一視圖控制器的title屬性的值 - 即視圖控制器一個級別在堆棧上。 (如果導航堆棧中只有一個視圖控制器,則不顯示後退按鈕。)

這意味着您必須將父視圖控制器的Title屬性設置爲顯示帶有其名稱的後退按鈕。