1

这很简单,我有一个视图,当用户在我的第一个视图中点击顶部导航栏上的“+”按钮时调用它,然后出现第二个视图。我的问题是,我无法在第二个视图导航栏上设置任何按钮,实际上我尝试像往常一样设置它,就像我设置“+”按钮一样,但没有任何效果。这就是我设置按钮的方式:

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)视图上设置按钮,没有任何工作,我不知道为什么。

4

2 回答 2

1

您在初始视图上设置后退按钮。如果您考虑一下,这有点道理,按钮是“用于”初始视图的,因此初始视图可以决定它所说的内容。默认是初始视图标题,但您可以像下面这样更改它

UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addProduct:)];
self.navigationItem.leftBarButtonItem = addButton;
self.navigationItem.backBarButtonItem.title = @"Back";
于 2012-05-29T09:28:16.973 回答
1

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

BIDAddProductViewController *addProductVC = [[BIDAddProductViewController alloc] init];
[self.navigationController pushViewController:addProductVC animated:YES];
于 2012-05-29T09:55:21.607 回答