2010-05-12 2 views
0

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

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

    }

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

ответ

4

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

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

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

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

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

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

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

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

При двойном щелчке на файле MainWindow.xib, Interface Builder запускает без окна "Вид", почему?

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

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

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

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

Смежные вопросы