【问题标题】:How to change the default View Controller that is loaded when app launches?如何更改应用启动时加载的默认视图控制器?
【发布时间】:2011-06-20 02:15:44
【问题描述】:

我有一个应用程序,比如“MyApp”,它默认在应用程序启动时加载视图控制器“MyAppViewController”。后来,我在项目中添加了一个新的视图控制器“NewViewControler”。

我现在希望“NewViewController”成为我的默认视图控制器,它会在应用启动时加载。

请让我知道我需要在我的项目中进行哪些更改才能实现这一目标。

【问题讨论】:

    标签: iphone objective-c uiviewcontroller uiwindow


    【解决方案1】:

    很简单,只需:

    • 打开故事板
    • 点击你想成为初始视图的视图对应的视图控制器
    • 打开属性检查器
    • 选中“视图控制器”部分中的“是初始视图控制器”复选框

    【讨论】:

      【解决方案2】:
      1. 打开 MainWindow.xib 并将 MyAppViewController 替换为 NewViewController。
      2. 在您的应用委托类中,将 MyAppViewController 的属性替换为 NewViewController 的属性。将 NewViewController 连接到 Interface Builder 中的新插座。
      3. application:didFinishLaunchingWithOptions: 中将 NewViewController 的视图添加到窗口,而不是 MyAppViewController 的视图。

      【讨论】:

      • RE #1:我发现如果您只是将 MyAppViewController 的类更改为 NewViewController,这有时似乎会混淆 Interface Builder。我的应用程序会构建,但是当我运行它时,它会崩溃,仍然试图加载我当然已经删除的旧视图控制器类型。我可以通过删除 MainWindow.xib 中的 MyAppViewController 来修复它,然后添加一个 View Controller 并将其类更改为 NewViewController,并将 App Delegate 出口重新连接到 NewViewController。 YMMV。
      【解决方案3】:

      很可能您的主 NIB 文件仍设置为“MainWindow”,请检查您的 *-Info.plist 文件。

      如果是这种情况,您可以在 Interface Builder 中打开 MainWindow.xib。您应该会看到一个 View Controller 项。调出检查器窗口并更改类标识以指向您的新类。这应该负责实例化您的类。

      因为这感觉像是一个“新手”问题(如果我弄错了,请原谅我)我也强烈推荐以下文章:

      iPhone Programming Fundamentals: Understanding View Controllers

      帮助我理解了整个 ViewController 和 IB 交互..

      【讨论】:

      • 正如 Ole Begemann 所提到的,您确实还应该更改 AppDelegate 中的引用并将其与 IB 连接起来。链接的文章也证明了这一点。
      【解决方案4】:

      对于使用 xcode 4.3.3 的我,我只需将 AppDelegate h 和 m 文件中的“MyAppViewController”的所有引用替换为“NewViewController”即可。

      也许所有其他步骤都在较新版本的 xcode 中被取消了。

      希望这会有所帮助。

      【讨论】:

        猜你喜欢
        • 2023-04-08
        • 2013-06-15
        • 2014-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多