导航项目rightBarButtonItem和标题行为已损坏

时间:2013-08-30 10:37:19

标签: ios navigation modalviewcontroller uinavigationitem

请你帮我解决一个问题:

我有一个导航控制器,带有初始Controller InitController和4个视图控制器:A,B,C,ModalViewController。我按下控制器A-> B-> C并呈现ModalView。当我解除ModalView并返回C导航项目时,我看到标题为“A”,右键为“编辑”,后面的按钮为“< C”,但内容属于C视图。在我按下后退按钮“< C”后,我看到正确的导航项目,即标题为“C”,右键为“上一个/下一个”,后退按钮为“< B”。

viewDidLoad

中的A中
[self.navigationItem setTitle:@"A"];
self.navigationItem.rightBarButtonItem = [self editButton];
if ([self.model gotoB]) {
    [self.navigationController pushViewController:B animated:NO]; 
}

viewDidLoad

中的B中
[self.navigationItem setTitle:@"B"];
self.navigationItem.rightBarButtonItem = [self editButton];
if ([self.model gotoC]) {
    [self.navigationController pushViewController:C animated:NO]; 
}

viewDidLoad

中的C中
[self.navigationItem setTitle:@"C"];
[self.navigationItem setRightBarButtonItem:self.nextPrevRightButton];
if ([self.model showModalView]) {
    [ModalViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
    [ModalViewController setDelegate:self];
    [self presentViewController:ModalViewController animated:YES completion:nil]; 
}

-(void) dismissModalController:(UIViewController *)sender

中的C中
[self dismissViewControllerAnimated:YES completion:nil];

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案,一开始我忘了提到A不是一个初始控制器,我实际上也把它推到初始控制器的堆栈中,但是我用animated:YES推动它。这是错误的,即最后一个模态视图控制器只需要显示animated:YES

这个问题Problem pushing multiple view controllers onto navigation controller stack的答案实际上帮助我解决了我的问题。