将XIB视图添加到故事板中的选项卡视图

时间:2012-07-31 11:10:57

标签: objective-c ios storyboard xib

我正在开发Iphone应用程序。 我正在使用StoryBoard。

我有一个带有3个标签的标签视图。 “主页”,“用户”和“设置”。

我在故事板上创建了“主页”和“用户”视图,但设置视图是一个XIB文件(SettingsView.xib)

如何让第三个标签(“设置”)打开SettingsView.xib?我可以同时使用故事板和xib文件吗?

我尝试在AppDelegate中的UINavigationController方法中初始化startApp,但我无法找到如何将其添加到故事板。

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

TabViewControllers通常为每个选项卡都有一个导航控制器。 在故事板中创建导航控制器,并将它们连接到选项卡视图控制器的navigationcontrollers关系。

导航控制器的初始视图连接到导航控制器的rootViewController关系。

关于你的第二个问题,我不确定,但我认为以下内容可行: -

在storyboard中创建一个UIViewController,并将它的类更改为您从XIB加载的类。当故事板实例化该类时,它将使用XIB,前提是该类的类名与XIB的名称完全匹配。我不认为你可以在这里做任何iPad / iPod检查。

答案 1 :(得分:0)

您可以将基于xib的视图添加到基于故事板的标签栏控制器,如下所示。我假设以下内容:

  • 标签栏控制器是故事板的初始视图控制器。
  • 您的设置控制器是一个名为SettingsController
  • 的类
  • 您的捆绑中有一个名为SettingsTabImage
  • 的标签栏图片

在故事板中定义标签栏控制器,只包含基于故事板的标签栏项目 - 您的案例中的主页和用户

在您的应用程序委托中,使用application:didFinishLaunchingWithOptions:中的以下代码:

// Create your settings view controller
SettingsController *settingsVC = [[SettingsController alloc] initWithNibName:nil bundle:nil];

// Create a tab bar item
UITabBarItem *settingsItem = [[UITabBarItem alloc] initWithTitle:@"Settings" image:[UIImage imageNamed:@"SettingsTabImage" tag:0];
settingsVC.tabBarItem = settingsItem;

// Get a reference to the tab bar controller
UITabBarController *tbC = (UITabBarController*)self.window.rootViewController;

// Get the current view controllers in your tab bar
NSMutableArray *currentItems = [NSMutableArray arrayWithArray:tbC.viewControllers];

// Add your settings controller
[currentItems addObject:settingsVC];
tbC.viewControllers = [NSArray arrayWithArray:currentItems];