推送时,UINavigationController不会正确设置视图属性

时间:2010-05-24 00:01:13

标签: iphone objective-c cocoa-touch xcode uinavigationcontroller

我有一个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];

2 个答案:

答案 0 :(得分:0)

我个人坚持在app delegate中维护自己对导航控制器的引用的风格,并且我使用app delegate对导航控制器的引用来推送新视图。

答案 1 :(得分:0)

解决:

if ([viewController isKindOfClass:[UINavigationController class]])
{
            [(UINavigationController *)viewController pushViewController:myView animated:NO];
}