gpt4 book ai didi

ios - 将导航 Controller 添加到选项卡栏应用程序

转载 作者:行者123 更新时间:2023-11-29 03:44:52 24 4
gpt4 key购买 nike

我对此有两个问题。首先,我将导航 Controller 成功放入 Storyboard 中,并与选项卡链接,并且按照我希望的方式工作。除了一件事。当我尝试添加这样的代码时
[self.navigationController popToViewController:vc动画:是]我收到错误“AppDelegate *”类型的对象上未找到属性“navigationController”

是不是我放错地方了?或者因为它是一个标签栏应用程序并且有些东西不对劲。

最佳答案

听起来您正在尝试从 AppDelegate 调用导航 Controller 。除非您专门将 AppDelegate 设置为与导航 Controller 一起使用(它需要是 UIViewController 的子类),否则您将收到错误,因为 AppDelegate 类上没有导航 Controller (默认情况下)。因此,当您调用该电话时 - 无法找到导航 Controller 。请注意您的 AppDelegate 是 UIResponder 的子类,而不是 UIViewController:

@interface AppDelegate : UIResponder <UIApplicationDelegate>

相反,创建和/或将导航 Controller 连接到 UIViewController 子类 - 然后您可以从子类中进行如下调用:

[self.navigationController popToViewController:vc animated:YES];

要创建和设置导航 Controller ,请按照以下步骤操作(如果您不使用 Storyboard ,则可能会有所不同)。

  1. 创建一个新的 UINavigationController Obj-C 子类。在 Xcode 菜单栏中,选择 File > New,或按 CMD+N。为您的类命名并将其父类(super class)设置为 UINavigationController: Adding a UINavigationController Subclass
    请注意,您并不绝对需要一个全新的类!您可以使用作为 UIViewController 子类的现有类 - 只要 navigationController 属性可用。
  2. 从 Xcode 的对象库中添加导航 Controller ,并按照您需要的方式进行设置。
  3. 在 Storyboard 中选择导航 Controller ,然后打开实用工具面板,并选择身份检查器选项卡。将 Custom Class 名称设置为 UIViewControllerUINavigationController 子类的名称: Navigation Controller Custom Class Xcode 4.6
  4. 在您的类(class)中,您将能够使用 navigationController 属性以及与 View Controller 相关的数百个其他属性。请记住,AppDelegate 实际上是用于设置应用程序和处理应用程序事件(例如应用程序关闭、应用程序后台运行、应用程序打开)的地方。

关于ios - 将导航 Controller 添加到选项卡栏应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17861407/

24 4 0