iphone - 同一 View Controller 的 2 个实例 : one does not work in the TabBarController

标签 iphone ios interface-builder

我尝试了很多选择,但没有一个有效。问题很简单:

我有一个 UITabBarController,它非常适合 5 个选项卡。

我的问题位于第一个和第二个选项卡上:我需要在每个选项卡下使用相同的 View Controller ,但当然有两个不同的实例。

我尝试添加 2 个不同的导航 Controller ,所有 Controller 都指向与根 Controller 相同的 View Controller 。这样我就可以在每个导航 Controller 上自定义选项卡文本和图标(我主要在界面构建器中工作)。

              __ NavController 1 _
             /                    \
TabController -- NavController 2 -- ViewController

使用此配置:只有第一个选项卡有效(由 NavController1 处理的选项卡),第二个选项卡不显示 View (我绝对不知道显示哪个 View ,但它是空的,黑色的,并且有一个默认的空蓝色导航栏)。如果我只保留一个从导航 Controller 到 View Controller 的链接,如下所示:

             __ NavController 1 
             /                    
TabController -- NavController 2 -- ViewController

第二个选项卡完美运行!

另一个选项是链接 NavController 两次,但在这种情况下,我需要根据选项卡索引以编程方式配置标题和图像,并且我不确定在哪里执行此操作。

所以:

  • 这是正常行为吗?
  • IB 有解决方案吗?
  • 如果我需要以编程方式设置选项卡外观,我应该在哪里执行此操作?

最佳答案

如果您想以编程方式执行此操作,可以在应用程序委托(delegate)中使用与此类似的代码。

UITabBarController *tbc = [[UITabBarController alloc] init];


MyViewController *mvc1 = [[MyViewController alloc] init];
MyViewController *mvc2 = [[MyViewController alloc] init];
mvc1.title=@"One";
mvc2.title=@"Two";
mvc1.tabBarItem.image=[UIImage imageNamed:@"one.png"];
mvc2.tabBarItem.image=[UIImage imageNamed:@"two.png"];


UINavigationController *nc1 = [[UINavigationController alloc] initWithRootViewController:mvc1];
UINavigationController *nc2 = [[UINavigationController alloc] initWithRootViewController:mvc2];


[tbc setViewControllers:[NSArray arrayWithObjects:nc1,nc2, nil]];


self.window.rootViewController = tbc;

关于iphone - 同一 View Controller 的 2 个实例 : one does not work in the TabBarController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14202177/

相关文章:

android - WebRTC 使用 Peerjs 和原生 Android/iOS 客户端

ios - 不同的颜色,即使 RGB 值相等

ios - 应用程序使用核心数据 - 如何实现 "print report"功能?

iphone - JSonKit反序列化问题

interface-builder - 在 Cappuccino 中添加多个Cib/Xib文件

cocoa-touch - 由于未捕获的异常 'NSInternalInconsistencyException' 而终止应用程序,原因 : '-[UIViewController loadView] loaded the nib but no view was set

iphone - NSString 问题

iphone - iOS 表格 View 和 View Controller

iphone - 从 UIPicker 中的 plist 字典中对数据进行数字排序

iphone - 如何在 iPhone 中调整 UINavigationController 的大小?