Я играл с шаблоном SplitView для iPad в XCode. Вот два из многих важных методов, которые автоматически генерируются для вас шаблоном приложения на основе разделенного представления ...
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;
}
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();
}
}
Когда вы строите и запускаете проект перед тем, как вносить какие-либо изменения, метод application:didFinishLaunchingWithOptions
вызывается до вызова метода RootViewController:viewDidLoad
. Я новичок в разработке для iPhone, но я предполагаю, что это правильная и типичная последовательность. Итак, вот изменения, которые я сделал ...
- Как только я подтвердил, что все работает без каких-либо изменений, я изменил код RootViewController и установил его в качестве подкласса
UIViewController
(вместо UITableViewController
по умолчанию) и внес соответствующие изменения в Interface Builder. Я построил и побежал, все еще работало нормально.
- Затем я добавил UIView (без него) в RootView в IB, и когда я его собрал и запустил, внезапно
RootViewController:viewDidLoad
вызывается перед методом application:didFinishLaunchingWithOptions
.
Мне нужно вернуть его обратно к тому, как он работал раньше, потому что, как вы можете видеть из кода, метод viewDidLoad зависит от метода didFinishLauchingWithOptions, который необходимо выполнить, чтобы он мог установить managedObjectContext
rootViewController, который он использует для выполнения запрос на получение.
- Есть идеи, что вызвало это?
- Есть идеи, как мне это исправить?
Заранее большое спасибо за вашу помощь! Я буду продолжать исследовать и играть с кодом.