【问题标题】:Add a XIB view to a tab view in the storyboard将 XIB 视图添加到情节提要中的选项卡视图
【发布时间】:2012-07-29 03:24:27
【问题描述】:

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

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

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

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

我尝试在 AppDelegate 的 startApp 方法中初始化 UINavigationController,但我不知道如何将其添加到情节提要。

感谢您的帮助

【问题讨论】:

  • 这是两个问题,几乎可以肯定是重复的;希望我的回答对你有用。

标签: objective-c ios storyboard xib


【解决方案1】:

TabViewController 通常每个选项卡都有一个导航控制器。 在 storyboard 中创建导航控制器并将它们连接到标签视图控制器的 navigationcontrollers 关系。

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

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

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

【讨论】:

  • "当故事板实例化类时,如果类的类名与 XIB 的名称完全匹配,它将使用 XIB" 成功了
【解决方案2】:

您可以将基于 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];

【讨论】:

  • 谢谢,我会试试的。一个问题,如果标签栏控制器不是初始视图,我如何获得对它的引用? (有一个带有按钮的视图控制器将通向标签栏控制器)
  • 您需要将这样的代码放入在显示标签栏控制器之前运行的 prepareForSegue 方法中。在这种情况下,标签栏控制器将成为 segue 的目标视图控制器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-15
  • 2012-12-18
  • 1970-01-01
  • 2012-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多