gpt4 book ai didi

xcode - 代码模式 : Loading TabBarController objects directly from independent . xib 文件(而不是来自 MainWindow.xib)

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:19:39 26 4
gpt4 key购买 nike

我在网上找了一圈,没能找到一个可以接受的解决这个问题的方法...

我正在寻找一个简单的代码模式:

从单独的 .xib 文件加载 TabBarController 对象(以及关联的 subview Controller ),而不是从默认的 MainWindow.xib 自动包含和加载。

在 XCode 术语中,从一个新的 iPad/iPhone 项目开始作为“Tab Bar 应用程序”,目标是解决以下问题:

  • 创建项目
  • 将:MainWindow.xib 中的 TabBarController、TabBar、FirstViewController 和 SelectedSecondViewController 移动到新的“TabBarController.xib”文件中
  • 移动后,MainWindow.xib 应仅包含:File's Owner、First Responder、App Delegate、Window
  • 在 TabBarController.xib 中,File's Owner 和 First Responder 分别设置为:UIApplication 和 UIResponder。
  • 将主应用程序委托(delegate)中的“didFinishLaunchingWithOptions”更改为以下内容:

删除:

     [self.window addSubview:tabBarController.view];

添加:

     UITabBarController *uiTab = [[UITabBarController alloc] initWithNibName:@"TabBarController" bundle:nil];      [self.window addSubview:uiTab.view];

通过这些更改,应用程序构建并运行,但是当 TabBarController 加载时,选项卡栏是“空的”—— Controller 中似乎没有任何内容。

在查看调试器时,“init”没有正确地从数据初始化,或者 .xib 文件中的某些内容设置不正确。

正确的解决方法是什么?我意识到还有其他方法可以做到这一点,是的,我让它们在其他应用程序中工作。

不过,我正在寻找的是一种使用默认项目的特定解决方案,它可以用作设置 iOS 代码的一般模式。

在此先感谢您的帮助

  • js

最佳答案

我想我知道你在找什么,因为我想要同样的东西。

  1. 在界面生成器中创建新的空 xib 文件。
  2. 从库中添加到 xib TabBarController
  3. 在 xib 上的这个标签栏 Controller 上编辑您需要的任何内容。
  4. 当然,保存...

确定要从哪个 View Controller 创建带有选项卡栏 Controller 的 xib。换句话说,谁是将导致此选项卡栏 Controller 出现的 View Controller 。我们称该 View Controller 为 ParentViewController

在该 View Controller 中,为 TabBarController 创建一个 IBOutlet

回到 xib,将 File's Owner 的身份设置为 ParentViewController 当然不要忘记将文件所有者中的选项卡栏 Controller 的导出连接到文件所有者中的选项卡栏 Controller xib。保存 xib,您就可以开始了。

当你想显示那个标签栏时,只需决定你想用哪种方式:模态、弹出或其他(不在导航 Controller 内,因为 Apple 不允许标签栏 Controller 在导航 Controller 内)。

当您决定时,只需按照呈现任何其他 View Controller 的方式呈现您的选项卡栏 Controller 导出。例如:

[self presentModalViewController:self.myTabBarController animated:YES];

关于xcode - 代码模式 : Loading TabBarController objects directly from independent . xib 文件(而不是来自 MainWindow.xib),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4102785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com