0

我問不要所示的UINavigationController上modalView

[self presentModalViewController:searchRegionController animated:YES]; 

後,我試圖通過

self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStyleBordered target:self action:@selector(next:)] autorelease]; 
    self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelAdd:)] autorelease] 
    self.navigationItem.titleView = someView; 
+0

請提供你到底想要什麼,你希望有一個導航控制器或導航欄..do一些信息呢?以及在哪種方法中你想添加你的navigationController? – Bonnie 2012-02-09 10:18:02

+0

導航欄。我只想在模態視圖上自定義導航欄。如果我將通過「pushToView ...」查看其工作,但「presentModalView ...」沒有; – 2012-02-09 10:44:48

回答

2

添加NavigationController所以做這樣 在searchRegionController類

-(void)viewDidLoad 
{ 
    UINavigationBar *naviBarObj = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
[self.view addSubview:naviBarObj]; 
UIBarButtonItem *rightBarButtonItem =[[[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStyleBordered target:self action:@selector(next:)] autorelease]; 

UIBarButtonItem *leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelAdd:)] autorelease]; 

UINavigationItem *navigItem = [[UINavigationItem alloc] initWithTitle:@"Navigation Title"]; 
navigItem.rightBarButtonItem = rightBarButtonItem; 
navigItem.leftBarButtonItem = leftBarButtonItem; 
naviBarObj.items = [NSArray arrayWithObjects: navigItem,nil]; 
} 

希望這可以幫助。

+1

這是因爲當您使用PushToView時,您實際上是將視圖推送到NavigationController,因此默認情況下NavigationController是可見的,但是當使用presentModalView時,視圖不會被推送到navigationController堆棧,其顯示爲獨立視圖,因此NavigationController先前的視圖不顯示。 ..你懂了。!! – Bonnie 2012-02-09 13:26:45

+0

哦,太好了。沒有足夠的聲譽,使+爲你,但我真的很感謝你:) – 2012-02-09 13:37:30

+0

如果我的答案幫助只是接受答案.. :-) – Bonnie 2012-02-09 13:44:30

0

試試這個:

-(void)someAction 
{ 
ViewController *object = [ViewController]alloc]initWithNibName:@"NibName" bundle:[NSBundle mainBundle]; 

UINavigationController *navController = [UINavigationCOntroller]alloc]initWithRootViewController:object]; 

[self presentModalViewController:navController animated:YES]; 

[object release]; 
[navController release]; 
} 

而且在視圖控制器的viewDidLoad做:

self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Add" style:UIBarButtonItemStyleBordered target:self action:@selector(next:)] autorelease]; 
    self.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(cancelAdd:)] autorelease] 
    self.navigationItem.titleView = someView; 
+0

大thx,我的問題在其他答案的解決方案。 – 2012-02-09 13:43:57