首次启动时填充导航控制器

时间:2015-05-12 14:35:09

标签: swift cocoa-touch uinavigationcontroller

首次启动我的应用时,我想创建一些新用户将看到的示例数据。我希望他们在导航控制器中启动一个级别(可能更多),如下所示:

tableViewController0 - > tvc1(用户从这里开始)

想象一下将文件夹作为其顶级导航的便笺应用。您可能希望首先在示例文件夹中向用户显示一些示例注释,然后让他/她稍后返回并创建新文件夹。

我的想法是,我会在application didFinishLaunchingWithOptions中运行一个检查首次启动的方法(检查/设置Bool中的NSUserDefaults)然后,如果我们在首次启动,创建一些示例数据。然后我想我可以创建每个视图控制器并设置我的UINavigationController的{​​{1}}属性,但是我收到了这个错误:

  

'NSInternalInconsistencyException',原因:'无法使用标识符Cell将单元格出列 - 必须为标识符注册一个nib或类,或者在故事板中连接一个原型单元'

(单元格在故事板中确实有一个标识符viewControllers,如果我事先没有创建数据并查看控制器,则可以正常工作。)

我的AppDelegate的一些示例代码:

Cell

我是否可以通过其他方式进行设置,以便用户可以直接跳到填充的导航堆栈而不必从顶层开始?

1 个答案:

答案 0 :(得分:0)

您正在使用故事板,这意味着您有一个初始视图控制器。

将此初始视图控制器设为UINavigationControllerrootViewController为某个SetupViewController,其中所有检查逻辑都会发生。在其中显示UIActivityIndicatorView或任何加载动画。然后,根据您找到的内容,按下虚拟备注屏幕或顶级文件夹屏幕。

在故事板中,您将从SetupViewController创建两个segue - 一个到音符,一个到文件夹。给每个segue自己的名字。您可以在代码中调用performSegueWithIdentifier来确定推送哪个屏幕。