Почему шаблон SplitView iPhone не имеет файла пера для RootView? - PullRequest
0 голосов
/ 13 мая 2010

Я погружаюсь в разработку iPad и быстро учусь, но куда бы я ни посмотрел, у меня есть вопросы. После создания нового приложения SplitView в XCode с использованием шаблона оно генерирует класс AppDelegate, класс RootViewController и класс DetailViewController. Наряду с этим он создает файлы .xib для MainWinow.xib и DetailView.xib.

  1. Как эти пять файлов работают вместе?
  2. Почему существует файл пера для DetailView, но нет 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;
    

    }

Заранее большое спасибо за вашу помощь! Мне еще нужно многому научиться, поэтому я прошу прощения, если этот вопрос абсурден. Я собираюсь продолжить исследовать эти вопросы прямо сейчас!

1 Ответ

4 голосов
/ 13 мая 2010

MainWinow.xib - это окно по умолчанию, создаваемое каждым сенсорным проектом Cocoa. Это окно, к которому добавляются все остальные окна, обычно в AppDelegate.

AppDelegate, я полагаю, вы уже знаете. Это ваш базовый класс для вашего приложения.

SplitViewController - это UISplitViewController, который добавляется в MainWindow.xib для вас с использованием IB, но не добавляется в окно в MainView.xib до тех пор, пока не будет запущен didFinishLaunchingWithOptions:

По умолчанию SplitViewController управляет двумя ViewController для вашего удобства. Обычно это UITableView (называемый в шаблоне RootViewController) и UIViewController (называемый DetailViewController). Хотя вы можете удалить их полностью, если хотите.

RootViewController - это просто UITableViewController. Добавлен в SplitViewController в IB.

DetailViewController является UIViewController, и он также добавлен в IB в MainWindow.xib для вас.

Почему существует файл пера для DetailView, но не RootView?

Я считаю, что DetailView загружается из файла пера для облегчения управления памятью. Но это так же легко можно было бы создать программно. Для RootView отсутствует перо, потому что оно уже добавлено и инициализировано в UISplitViewController. Его можно было бы так же легко загрузить из xib-файла.

Когда я дважды нажимаю на Файл MainWindow.xib, Интерфейсный Разработчик запускается без окна «Вид», почему?

Этот шаблон iPad по умолчанию использует UISplitViewController, называемый SplitViewController, а не UIView Called View, как другие шаблоны iPhone.

Ниже приведен код для Метод didFinishLaunchingWithOptions внутри класса AppDelegate. Почему мы добавляем splitViewController как подтаблицы

SplitViewController существует только в MainWindow.xib, он не добавляется в Window (в MainWindow.xib). Так что добавлено здесь. Если бы он был вложен в SplitViewController, не было бы необходимости добавлять его в AppDelegate.

Это документ, который вы хотите прочитать

...