【问题标题】:UINavigationController does not set view properties correctly when pushed推送时 UINavigationController 未正确设置视图属性
【发布时间】:2011-02-23 01:20:12
【问题描述】:

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

但是,如果我更改代码以将选项卡栏的选定视图控制器设置为 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];

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我不认为我理解你。你能发布一些代码来帮助我理解吗?
    【解决方案2】:

    已解决:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-07
      • 2011-08-17
      • 1970-01-01
      相关资源
      最近更新 更多