Пример кода Apple: TouchCells, как это работает? - PullRequest
1 голос
/ 22 июня 2011

Я работал над пользовательским UITableViewCells и наткнулся на пример TouchCells от apple: Пример проекта TouchCells

Я не могу понять, как загружается приложение.Если вы посмотрите на AppDelegate.m, вы увидите следующее:

- (void)applicationDidFinishLaunching:(UIApplication *)application
{
// create window and set up table view controller
detailViewController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil];
detailViewController.loadView;

[window addSubview:navController.view];
[window makeKeyAndVisible];
}

, который, кажется, загружает DetailViewController.

Однако, когда приложение загружается, появляется UITableViewControllerтипа MyTableViewController загружается с заголовком TouchCells.Я посмотрел на MainWindow.xib и нет MyTableViewController (насколько я могу судить).

Когда я ставлю точки останова в

- (void)viewDidLoad
{
// load our data from a plist file inside our app bundle
NSString *path = [[NSBundle mainBundle] pathForResource:@"tableData"     ofType:@"plist"];
self.dataArray = [NSMutableArray arrayWithContentsOfFile:path];
} 

из MyTableViewController.m, точка остановадостигается до точки останова в applicationDidFinishLaunching из AppDelegate.m.Я предполагаю, что это означает, что MyTableViewController загружается первым, но я не могу до конца жизни понять, где находится этот вызов в коде.

Может кто-нибудь помочь мне разобраться в логическом потокеTouchCells пример?

Спасибо

Ответ

Выбранный ответ содержит правильную информацию, но в ответе @Caleb показано, какполучить эту информацию.

Спасибо всем

Ответы [ 2 ]

1 голос
/ 22 июня 2011

Когда вызывается applicationDidFinishLaunching, соединения с интерфейсом построителя уже будут установлены. Поэтому любой класс, который необходимо инициализировать, будет вызываться перед applicationDidFinishLaunching. Если вам интересно, какие методы вызывают, следуйте трассировке стека, как только ваша точка останова попадет внутрь Навигатора отладки в XCode 4.

Обновление:

Внутри MainWindow.xib разверните Navigation Controller, и вы найдете MyTableViewController.

0 голосов
/ 22 июня 2011

Предполагая, что вы используете Xcode 4, вы можете нажать маленькую кнопку расширения в нижней части области док-станции IB:

expansion button

Это позволит вам увидеть объекты, содержащиеся в контроллере навигации, например:

document structure

Теперь вы можете видеть, что MyTableViewController создается в качестве корневого контроллера контроллера навигации при загрузке основного пера. Другой способ сделать это - использовать команду «Редактор» -> «Показать в структуре документа».

...