【问题标题】:Connecting navigation controller through button on Storyboard crashes app通过 Storyboard 上的按钮连接导航控制器崩溃应用程序
【发布时间】:2013-05-12 13:44:42
【问题描述】:

我是第一次使用 Storyboard。

这是一张图片:

我的应用是一个 TabBar 应用。在“主”屏幕上,我有一个设置按钮,我想将其连接到我嵌入在导航控制器中的 SettingsViewController(因为它必须以这种方式继续 - 连接到设置屏幕的其他部分)。

另一张照片:

现在:我已尝试将设置按钮(命令+控制拖动)连接到控制器(模态 segue)= CRASH。试图连接设置控制器(模态segue)= CRASH。

以编程方式尝试:为设置按钮创建一个 IBAction,然后调用设置 VC,但这也崩溃了。

注意:这个应用程序有更多的屏幕,但它们都可以正常工作。只是与设置 VC 的连接导致应用程序崩溃。

任何想法都将不胜感激。

这是错误日志:

【问题讨论】:

  • 您应该将按钮连接到导航控制器——不清楚您是否尝试过。
  • 可以添加崩溃日志吗?
  • 我添加了崩溃日志。那是它连接到导航控制器@rdelmar的时候。我想我已经尝试了一切:)
  • 什么是引发崩溃的异常?

标签: ios uinavigationcontroller uitabbarcontroller uistoryboard


【解决方案1】:

所以你得到了错误:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 
'-[UITableViewController loadView] loaded the "Eab-23-IvL-view-eGY-e2-X6m" nib but didn't 
get a UITableView.'

这意味着继承自 UITableViewController 的 Settings View Controller 在情节提要中没有实际的 UITableView。一个肯定会起作用的修复方法是从情节提要中删除设置视图控制器,然后拖动一个表视图控制器来代替您删除的那个。然后继续在身份检查器中给它正确的类并设置所有的 segues 和连接!

【讨论】:

  • 我做到了。仍然崩溃。我在上面的评论中说过。
  • 但是崩溃时出现的异常是什么?
  • 是的,但那是十六进制的调用栈,不是很有用!最重要的是应该有某种人类可读的信息,这应该对理解问题更有帮助!
  • *** 由于未捕获的异常 'NSInternalInconsistencyException' 导致应用程序终止,原因:'-[UITableViewController loadView] 加载了“Eab-23-IvL-view-eGY-e2-X6m” nib 但没有'没有获得 UITableView。嗯。这是什么意思?连接到视图控制器(设置)的类继承自 UITableViewController。
  • 在您发布的故事板图片中,设置视图控制器中似乎没有 UITableView,为什么它继承自 UITableViewController?
【解决方案2】:

当有适当的处理方法时,您正在使用UIToolBar,使用UINavigationBar。 然后你可以设置一个按钮,将按钮连接到settingViewController(control+drag),然后选择modal,给segue设置一个名字,也可以control+drag bar button item到你的viewController并像这样连接:

- (IBAction)btnSettings:(id)sender {
    [self performSegueWithIdentifier:@"settingsSegue" sender:sender];
}

那么它应该可以工作了。

【讨论】:

  • 我可以在标签视图上放置一个导航栏 - ?
  • 您可以随时放置导航栏。
猜你喜欢
  • 1970-01-01
  • 2018-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多