无法在导航控制器上设置“后退”按钮

时间:2012-05-29 09:24:36

标签: iphone objective-c uinavigationcontroller

这非常简单,当我在第一个视图中点击顶部导航栏上的“+”按钮时,我会看到一个视图,然后会出现第二个视图。我的问题是,我不能在我的第二个视图导航栏上设置任何按钮,实际上我试图像我通常那样设置它,就像我设置我的“+”按钮,但没有任何作用。这就是我设置按钮的方式:

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addProduct:)];
self.navigationItem.leftBarButtonItem = addButton;

然后我打电话给我的第二个观点:

BIDAddProductViewController *addProductVC = [[BIDAddProductViewController alloc] init];
[self presentModalViewController:addProductVC animated:YES];
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(hideModalViewController:) name:@HideModalViewController" object:addProductVC];

请帮我在第二个(BIDAddProductViewController)视图上设置按钮,没有任何工作,我不知道为什么。

2 个答案:

答案 0 :(得分:1)

在初始视图上设置后退按钮。如果你考虑它,它有点意义,按钮是'for'初始视图,所以初始视图决定它说。默认是初始视图标题,但您可以像下面那样更改

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addProduct:)];
self.navigationItem.leftBarButtonItem = addButton;
self.navigationItem.backBarButtonItem.title = @"Back";

答案 1 :(得分:1)

问题在于您呈现第二个控制器的方式。不是将其推入导航堆栈,而是以模态方式呈现它,这就是为什么你没有得到“后退”按钮。你真正应该做的是这样的事情:

BIDAddProductViewController *addProductVC = [[BIDAddProductViewController alloc] init];
[self.navigationController pushViewController:addProductVC animated:YES];