【问题标题】:change tab and push controller onto navigation stack programatically以编程方式更改选项卡并将控制器推送到导航堆栈
【发布时间】:2011-07-04 00:56:51
【问题描述】:

我有一个标签栏应用程序。其中一个选项卡有一个导航堆栈。我想以编程方式更改选项卡,然后将新控制器推送到选定的选项卡堆栈上。我可以很好地更改标签:

   KidScienceAppDelegate *appDelegate = (KidScienceAppDelegate*) [[UIApplication sharedApplication] delegate];
    UITabBarController *tab=[appDelegate tabBarController] ;
    tab.selectedIndex=2;

如果我只是运行它,它会正确移动到带有导航堆栈的选项卡并显示根视图。然后我想将一个新控制器推送到该堆栈上。我试过这个:

ExperimentsNameViewController *detailViewController = [[ExperimentsNameViewController alloc] initWithNibName:@"ExperimentsNameView" bundle:nil];

FindViewController *c = [tab.viewControllers objectAtIndex:2];
[c.navigationController pushViewController:detailViewController animated:NO];

但这不会推动控制器。有人有什么想法吗?

【问题讨论】:

    标签: ios uitabbarcontroller


    【解决方案1】:

    如果您在索引 2 处有一个导航控制器,那么当您执行 [tab.viewControllers objectAtIndex:2]; 时,您将获得一个导航控制器,所以它应该是

    [..]
    UINavigationController * navigationController = [tab.viewControllers objectAtIndex:2];
    [navigationController pushViewController:detailViewController animated:NO];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 2015-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多