【问题标题】:iOS Storyboard / iPad / error "unrecognized selector sent to instance"iOS Storyboard / iPad / 错误“发送到实例的选择器无法识别”
【发布时间】:2012-03-14 04:39:57
【问题描述】:

我是这个网站和 iOS 编程的新手;所以,如果我遗漏了什么要问一个正确的问题,请原谅我,但我已经阅读了参数和一些答案——我的小问题还没有答案。

我要做的只是创建一个文件/新建/主详细信息应用程序/故事板框已选中/ARC 框已选中/DeviceFamily: iPad...

然后我的故事板显示:

初始segue*==>*SplitViewController 屏幕-->NavigationCotroller 屏幕-->TableView 屏幕

SplitViewController 也连接到 NavigationCotroller 屏幕和 DetailViewController

问题是当我从 Objects 中选择一个 ViewController 时,将其拖到画布上,将其放在现有 SplitViewController 屏幕的左侧,然后将初始 segue 移动到这个新的 ViewController。在没有进行任何其他更改的情况下,我运行它并崩溃并显示以下错误消息。

我收到此错误:

2012-02-23 11:09:50.526 Lab4[1815:f803] -[UIViewController topViewController]:无法识别的选择器发送到实例 0x6c69b90 2012-02-23 11:09:50.528 Lab4 [1815:f803] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[UIViewController topViewController]:无法识别的选择器发送到实例 0x6c69b90” * 首先抛出调用栈: (0x13bd052 0x154ed0a 0x13beced 0x1323f00 0x1323ce2 0x1323ce2 0xf57 0x129d6 0x138a6 0x22743 0x231f8 0x16aa9 0x12a7fa9 0x13911c5 0x12f6022 0x12f490a 0x12f3db4 0x12f3ccb 0x132a7 0x14a9b 0x1e18 0x1d75 0x1e18 0x1d75 0x1e) 终止称为抛出异常

然后我将最初的 segue 移回 SplitViewController 运行它并且没有崩溃.... ???

有人可以指导我吗?

谢谢, 瑞克。

【问题讨论】:

    标签: ios


    【解决方案1】:

    在 AppDelegate 中有代码从rootViewController 设置splitViewController

    UISplitViewController *splitViewController = (UISplitViewController *)self.window.rootViewController;
    UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
    splitViewController.delegate = (id)navigationController.topViewController;
    return YES;
    

    应用程序需要 UISplitViewController,因此当您将初始视图设置为通用 UIViewController 时会出现问题。

    如果您想使用左侧的单个视图,请保留 UISplitViewController 作为初始视图,然后按住 ctrl 从 UISplitViewController 拖动到新视图并单击 Relationship - masterViewController

    【讨论】:

    • Ruhatch,我有“从 UISplitViewController 中按住 ctrl 拖动到新视图并单击关系 - masterViewController。”新的 Segue 从 masterViewController 到新的 viewController,但最初的 Segue 仍然在 masterViewController 的左侧。我已将 Segue 移动到新 viewController 的左侧,并且发生了同样的错误。我猜你不能添加额外的单一视图控件并使其充当现有 masterSplitViewController 的初始屏幕......谢谢。
    • 是的,在主/详细应用程序的情况下,初始视图应该始终是拆分视图控制器。除了 iOS 5 中的根视图控制器之外,我们几乎从不想拥有一个 splitview 控制器。
    猜你喜欢
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 2012-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多