我希望每个人都有一个美好的一天到目前为止。
我遇到了我的应用程序的问题,我需要帮助搞清楚。我有一个视图控制器(让我们调用“A”)与自定义工具栏很好地工作。
当我从视图控制器“A”推送视图控制器(让我们称之为“locationsController”)时......
[self.navigationController pushViewController:self.locationsController animated:YES];
...我按下了像这样关闭的locationsController上的后退按钮......
[self.navigationController popViewControllerAnimated:YES];
当弹出locationController时,我在视图控制器“A”中丢失了自定义工具栏。我该如何修复它以便拦截并调用我的buildtoolbar方法?
此外,locationsController可以从另一个视图控制器中推送/弹出,因此我需要确定哪个视图控制器正在弹出locationsController并触发buildtoolbar方法或者什么也不做,因为其他视图控制器没有工具栏
视图控制器“A”是一个XIB,而locationsController是在故事板中定义的。 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;
}
提前致谢!
答案 0 :(得分:1)
我将来自viewDidLoad的toolbarSetup调用移动到viewWillAppear。显然,当最顶层的VC弹出堆栈时,第二个VC的viewDidLoad不会触发。 viewWillAppear会触发viewDidAppear等等....