【问题标题】:Basic Navigation between views not working视图之间的基本导航不起作用
【发布时间】:2012-06-17 14:57:20
【问题描述】:

我在视图之间的基本导航方面遇到了一些问题。我有一个带有两个视图的 tabBarController。在第一个视图控制器中,当调用响应按钮按下的方法时,self.navigationController 为空。调试器逐步执行代码,但模拟器中的屏幕没有改变。我的 viewController 按钮响应方法中有以下代码:

FooViewController *fvc = [[FooViewController alloc] initWithNibName:@"FooViewController" bundle:nil];
[self.navigationController pushViewController:fvc animated=YES];

在 MyAppDelegate.m 实现的 didFinishLaunchWithOptions 方法中,我正在创建一个 UINavigationController 并使用 UIViewController 的实例将其初始化为根视图控制器,代码如下:

UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController: viewController1];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects: viewController1, viewController2, nil];
self.window.rootViewController = self.tabBarController;

我目前的理解是initWithRootViewController变量应该将UINavigationController对象绑定到viewController1。我究竟做错了什么?!? 任何想法、建议或智慧的珍珠都将不胜感激。

非常感谢,

-蒙克

【问题讨论】:

    标签: iphone objective-c ios navigation


    【解决方案1】:

    是的initWithRootViewController 确实绑定了导航,但是在标签栏中你应该设置UINavigationController 而不是ViewController 本身

    改变这一行

    self.tabBarController.viewControllers = [NSArray arrayWithObjects: viewController1, viewController2, nil];
    

    self.tabBarController.viewControllers = [NSArray arrayWithObjects: nav, viewController2, nil];
    

    你这里好像有错别字

    [self.navigationController pushViewController:fvc animated=YES];
    

    改成

    [self.navigationController pushViewController:fvc animated:YES];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-27
      • 2015-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 1970-01-01
      相关资源
      最近更新 更多