Objective c 苹果代码示例:TouchCells,它是如何工作的?

Objective c 苹果代码示例:TouchCells,它是如何工作的?,objective-c,ios,cocoa-touch,sample,Objective C,Ios,Cocoa Touch,Sample,我一直致力于定制UITableViewCells,并偶然发现了苹果的TouchCells示例: 我不知道应用程序是如何加载的。如果查看AppDelegate.m,您会看到: - (void)applicationDidFinishLaunching:(UIApplication *)application { // create window and set up table view controller detailViewController = [[DetailViewControlle

我一直致力于定制UITableViewCells,并偶然发现了苹果的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
。我查看了
main window.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
,在
applicationdFinishLaunching
中的
AppDelegate.m
中,在断点之前命中断点。我想这意味着要先加载
MyTableViewController
,但我一辈子都搞不清楚调用在代码中的什么位置

有人能帮我弄清楚
TouchCells
示例的逻辑流程吗

谢谢

回答

所选答案中包含正确的信息,但提供的答案@Caleb显示了如何获取该信息


谢谢大家

当调用ApplicationIDFinishLaunching时,界面生成器连接将已设置。因此,任何需要初始化的类都将在ApplicationIDFinishLaunching之前调用。如果您想知道调用它的方法是什么,那么在XCode 4的调试导航器中找到断点后,请跟踪堆栈跟踪

更新:


在MainWindow.xib的内部展开导航控制器,您将找到MyTableViewController。

当调用ApplicationIDFinishLaunching时,将已设置界面生成器连接。因此,任何需要初始化的类都将在ApplicationIDFinishLaunching之前调用。如果您想知道调用它的方法是什么,那么在XCode 4的调试导航器中找到断点后,请跟踪堆栈跟踪

更新:


在MainWindow.xib内部展开导航控制器,您将找到MyTableViewController。

如果您使用的是Xcode 4,您可以单击IB dock区域底部的小展开按钮:

这样您就可以看到导航控制器中包含的对象,如下所示:


现在您可以看到,当加载主nib时,MyTableViewController被创建为导航控制器的根控制器。另一种方法是使用编辑器->在文档结构中显示命令。

假设您使用的是Xcode 4,您可以单击IB dock区域底部的小扩展按钮:

这样您就可以看到导航控制器中包含的对象,如下所示:


现在您可以看到,当加载主nib时,MyTableViewController被创建为导航控制器的根控制器。另一种方法是使用编辑器->在文档结构中显示命令。

我找不到在哪里声明了
MyTableViewController
。它不在
MainWindow.xib
中,也不在
AppDelegate.m
中,它在
MainWindow.xib
中。打开导航控制器
MyTableViewController
是它的根视图控制器。我找不到在哪里声明了
MyTableViewController
。它不在
MainWindow.xib
中,也不在
AppDelegate.m
中,它在
MainWindow.xib
中。打开导航控制器
MyTableViewController
是它的根视图控制器。