我有一个UITabBarControllerDelegate,在按下某个标签时推送一个新的视图控制器:
- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController
{
MyView* myView = [[[MyView alloc] initWithNibName:@"MyView" bundle:nil]autorelease];
if([self.tabBarController.selectedViewController.title isEqualToString:@"Friends"]){
NSLog(@"Clicked Friends");
myView.reloadFriends = TRUE;
[self.navigationController myView animated:YES];
}
}
但是,如果我更改我的代码以将tabbar的选定视图控制器设置为myView一切正常,但我没有得到我的导航栏:
if([self.tabBarController.selectedViewController.title isEqualToString:@"Friends"]){
NSLog(@"Clicked Friends");
myView.reloadFriends = TRUE;
self.tabBarController.selectedViewController = myView;
}
如何在MyView中设置reloadFriends属性并在顶部设置导航栏?
编辑: 我也试过以下代码,没有运气:
[self.tabBarController.selectedViewController.navigationController pushViewController:myView animated:YES];
答案 0 :(得分:0)
我个人坚持在app delegate中维护自己对导航控制器的引用的风格,并且我使用app delegate对导航控制器的引用来推送新视图。
答案 1 :(得分:0)
解决:
if ([viewController isKindOfClass:[UINavigationController class]])
{
[(UINavigationController *)viewController pushViewController:myView animated:NO];
}