저는 Xcode에서 iPad의 SplitView 템플릿으로 놀았습니다. 여기왜 내 응용 프로그램 대리인의 didFinishLaunchingWithOptions 메서드가 갑자기 RootViewController : viewDidLoad 메서드 이후에 호출되는 것입니까?
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
메서드가 호출됩니다.메서드가 호출됩니다. 저는 iPhone 개발에 익숙하지 않지만 이것이 올바른 순서라고 가정합니다. 그래서 여기 내가 만든 변경 ... 나는 모든 수정없이 일하고 확인되면
- , 나는 RootViewController 코드를 변경하고
UIViewController
(대신 기본적으로UITableViewController
)의 서브 클래스로 설정하고 각각을했다입니다 Interface Builder에서 조정. 내가 만들었고 달렸는데, 모든 것은 여전히 잘 작동했다. - 그런 다음 IB의 RootView에 UIView를 추가했습니다. 빌드하고 실행할 때 갑자기
RootViewController:viewDidLoad
이application:didFinishLaunchingWithOptions
메서드 전에 호출되었습니다.
난 당신이 코드에서 볼 수 있듯이, 다시이 때문에 이전에 일하던 방식을 얻을 필요는있는 viewDidLoad 방법은 그래서 설정할 수 있습니다 실행 didFinishLauchingWithOptions 방법에 따라 달라집니다 rootViewController의 managedObjectContext
이 수행하는 데 사용하는 가져 오기 요청.
- 어떤 결과가 발생 했습니까?
- 어떤 문제를 해결할 수 있을까요?
도움을 위해 미리 감사드립니다. 나는 계속 코드를 연구하고 놀거야.
감사합니다. eman! SplitView 기반 응용 프로그램 템플릿은 RootViewController에 대한 초기화 코드를 생성하지 않습니다. 적어도 어디서나 볼 수는 없습니다. 그래서 iPad 개발을 처음 접했을 때부터 지금까지 내가 배운 내용을 토대로 RootViewController의 초기화 로직이 메인 윈도우의 nib 파일에 포함되어 있다고 가정합니다. 대부분의 UI가 다음과 같이 만들어 졌기 때문입니다. IB 맞지? – BeachRunnerFred