Objective c 苹果代码示例:TouchCells,它是如何工作的?
我一直致力于定制UITableViewCells,并偶然发现了苹果的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
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
是它的根视图控制器。