我希望到目前为止,每个人都过得愉快。
我的应用程序遇到问题,我需要一些帮助来解决。我有一个带有自定义工具栏的视图控制器(让我们称之为“A”),效果很好。
当我从视图控制器“A”推送视图控制器(我们称之为“locationsController”)时......
[self.navigationController pushViewController:self.locationsController animated:YES];
...然后我按下位置控制器上的后退按钮,它像这样关闭...
[self.navigationController popViewControllerAnimated:YES];
弹出 locationController 时,我在视图控制器“A”中丢失了自定义工具栏。如何修复它以便我可以拦截并调用我的 buildtoolbar 方法?
此外,可以从另一个视图控制器推送/弹出位置控制器,因此我需要确定哪个视图控制器正在弹出位置控制器,并且要么触发 buildtoolbar 方法,要么什么都不做,因为另一个视图控制器没有工具栏。
视图控制器“A”是 XIB,而位置控制器在情节提要中定义。XIB 在视图/布局中没有工具栏。
从 viewDidLoad [self buildToolbar] 调用的工具栏代码...
-(void) buildToolbar{
blah blah blah
self.navigationController.toolbarHidden = NO;
UIBarButtonItem *flexableItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem *refresh = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];
UIBarButtonItem *comments = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Comments-selected.png"] style:UIBarButtonItemStyleDone target:self action:@selector(cameraButtonTapped:)];
UIBarButtonItem *pin = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"Pin-straight_60wide.png"] style:UIBarButtonItemStyleDone target:self action:@selector(pinBarButtonItemPressed:)];
NSArray *items = [NSArray arrayWithObjects:customBarButtonItem_right, flexableItem, comments, flexableItem, pin, flexableItem, refresh, nil];
// [self.navigationController.toolbar setItems:items animated:YES];
self.toolbarItems = items;
}
提前致谢!