Bea*_*red 6 xcode interface-builder iphone-sdk-3.0 ipad
我一直在使用Xcode中的iPad的SplitView模板.以下是基于Split View的应用程序模板为您自动生成的许多重要方法中的两个...
AppNameAppDelegate.m
#pragma mark -
#pragma mark Application lifecycle
- (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;
}
Run Code Online (Sandbox Code Playgroud)
RootViewController.m
#pragma mark -
#pragma mark View lifecycle
- (void)viewDidLoad {
[super viewDidLoad];
self.clearsSelectionOnViewWillAppear = NO;
self.contentSizeForViewInPopover = CGSizeMake(320.0, 600.0);
NSError *error = nil;
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}
Run Code Online (Sandbox Code Playgroud)
在进行任何更改之前构建并运行项目时,将application:didFinishLaunchingWithOptions在调用RootViewController:viewDidLoad方法之前调用该方法.我是iPhone开发的新手,但我认为这是正确而典型的序列.所以这是我所做的改变......
UIViewController(而不是UITableViewController默认)的子类,并在Interface Builder中进行了相应的调整.我建立并运行,一切仍然正常.RootViewController:viewDidLoad在application:didFinishLaunchingWithOptions方法之前调用它. 我需要让它恢复到以前的工作方式,因为正如您在代码中看到的那样,viewDidLoad方法依赖于didFinishLauchingWithOptions方法来执行,因此它可以设置managedObjectContext用于执行获取请求的rootViewController .
非常感谢您的帮助!我要继续研究和玩代码.
在模板app中-applicationDidFinishLaunching将RootViewController的视图添加到窗口中,导致视图加载,所以很明显-viewDidLoad会跟随-applicationDidFinishLaunching。
ViewDidLoad 是(间接)从 applicationDidFinishLaunching 调用的。
如果,如您所说,在 applicationDidFinishLaunching 之前调用 viewDidLoad,那是因为您在调用 applicationDidFinishLaunching 之前做了一些事情导致视图加载。
您是否在 -viewDidLoad 中添加了断点并查看堆栈跟踪以查看调用它的原因?
| 归档时间: |
|
| 查看次数: |
14595 次 |
| 最近记录: |