我正在深入研究 iPad 开发,并且学得很快,但我到处都有疑问。使用模板在 Xcode 中创建新的 SplitView 应用程序后,它会生成 AppDelegate 类、RootViewController 类和 DetailViewController 类。除此之外,它还为 MainWinow.xib 和 DetailView.xib 创建 .xib 文件。

  1. 这五个文件如何协同工作?
  2. 为什么 DetailView 有 nib 文件,而 RootView 没有?
  3. 当我双击 MainWindow.xib 文件时,Interface Builder 启动时没有“查看”窗口,为什么?
  4. 下面是代码 didFinishLaunchingWithOptions AppDelegate 类中的方法。为什么我们要添加 splitViewController 作为子视图?

    (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    
    // Override point for customization after app launch    
    rootViewController.managedObjectContext = self.managedObjectContext;
    
    // Add the split view controller's view to the window and display.
    [window addSubview:splitViewController.view];
    [window makeKeyAndVisible];
    
    return YES;
    

    }

预先非常感谢您的所有帮助!我还有很多东西要学,所以如果这个问题有任何荒谬之处,我深表歉意。我现在要继续研究这些问题!

有帮助吗?

解决方案

MainWinow.xib 是每个 Cocoa touch 项目创建的默认窗口。这是所有其他窗口都添加到的窗口,通常在 AppDelegate 中。

AppDelegate,我假设您已经知道了。这是您的应用程序的基类。

SplitViewController 是一个 UISplitViewController,它会使用 IB 添加到 MainWindow.xib 中,但在 didFinishLaunchingWithOptions 之前不会添加到 MainView.xib 中的窗口:正在运行。

默认情况下,SplitViewController 管理两个 ViewController,以方便您。通常这些是 UITableView(在模板中称为 RootViewController)和 UIViewController(称为 DetailViewController)。尽管您可以根据需要完全删除它们。

RootViewController 只是一个 UITableViewController。它被添加到IB中的SplitViewController中。

DetailViewController是一个UIViewController,它也被添加到MainWindow.xib中的IB中。

为什么有详细信息的笔尖文件,而不是rootview?

我相信 DetailView 是从 nib 文件加载的,以方便内存管理。但它也可以很容易地以编程方式创建。RootView 没有笔尖,因为它已在 UISplitViewController 中添加并初始化。它可以很容易地从 xib 文件加载。

当我双击mainwindow.xib文件时,Interface Builder在没有“视图”窗口的情况下启动,为什么?

此默认 iPad 模板使用名为 SplitViewController 的 UISplitViewController,而不是像其他 iPhone 模板那样使用名为 View 的 UIView。

以下是AppDelegate类中的DidFinishLaunchingWithOptions方法的代码。为什么我们将SplitViewController添加为子视图?

SplitViewController仅存在于MainWindow.xib中,它没有添加到Window(在MainWindow.xib中)。所以在这里添加一下。如果它嵌套在 SplitViewController 中,则无需添加到 AppDelegate 中。

这是您想要的文档

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top