回答

2

我只是在展示模態之前實例化一個UINavigationController。

YourViewController *modalViewController = [[YourViewController alloc] initWithNibName:@"foo" bundle:nil] 
UINavigationController *tmpNavController = [[UINavigationController alloc] initWithRootViewController:modalViewController]; 
[modalViewController release]; 
[self.navigationController presentModalViewController:tmpNavController animated:YES]; 
[tmpNavController release]; 

這是剛剛復出的最信封 - 我不會複製和粘貼代碼W/O型的二次檢查!

+0

是的,但我不能使用已經存在的那個? – ma11hew28 2010-07-25 14:40:06

+0

不,因爲你在模態地呈現。從視角來看,將「模態」視爲「全新的世界」。您需要重新開始,爲您的新模態世界重新創建一個新的導航控制器。 然後,當您準備好回到舊的視圖層次時,可以調用[self dismissModalViewControllerAnimated:YES] – makdad 2010-07-27 10:52:09

+0

確定嗎?有一種方法可以通過編程方式訪問我通過parentViewController製作的NavigationController的NavigationBar,並將其作爲子視圖添加到當前的模式視圖中。現在,我將創建另一個UINavigationBar,一個UINavigationItem和一個UIBarButtonItem作爲UINavigationItem的leftBarButtonItem,然後將UINavigationItem推送到UINavigationBar上,然後將它作爲子視圖添加到模態視圖中。我不需要navigationController。請參閱:http://github.com/acani/acani-chat/blob/master/Lovers/Classes/ProfileViewController.m – ma11hew28 2010-07-28 01:21:06