私は、ユーザーが選択した画像のサムネイルを選択して表示できるスプリットビューアプリを持っています。 Interface Builderを使用してdetailViewControllerにUIButtonを配置しました。このボタンを押すと、画像の全画面表示に変更します。私はFullViewControllerと呼ばれる新しいView Controllerをセットアップして、すべてが接続されていると思った。問題は、ナビゲーションコントローラがnullであることです。私は、次のようにAppDelegate.mを調整:ナビゲーションコントローラがnull
AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after app launch.
// Set the split view controller as the window's root view controller and display.
self.window.rootViewController = self.splitViewController;
UINavigationController *nvcontrol =[[UINavigationController alloc] initWithRootViewController:fullViewController];
[window addSubview:nvcontrol.view];
[self.window makeKeyAndVisible];
return YES;
}
これは、ボタンが押されたときに呼び出されDetailViewController.m内の関数です。ナビゲーションコントローラはここでヌルになります。
//Function called when button is pressed - should bring up full screen view
- (IBAction) pressFullViewButtonFunction: (id) sender{
//viewLabel.text = @"Full View";
if (fullViewController == nil){
FullViewController *fullViewController = [[FullViewController alloc] initWithNibName:@"FullViewController" bundle:[NSBundle mainBundle]];
NSLog(@"fullViewController is %@", fullViewController);
self.fullViewController = fullViewController;
}
NSLog(@"self.navigationController is %@",self.navigationController);//this is null
[self.navigationController pushViewController:self.fullViewController animated:YES];
}
私はこの問題を解決するかどうかはわかりません。 AppDelegateのカップルラインを追加しようとしましたが、実行時にルートビューのテーブルが表示されず、ポートレートビューとランドスケープビューの切り替えが正しく行われなくなりました。
明確にするのに役立ちますと、残りのコードをすぐに利用できます。私に知らせて!おかげさまで あなたは問題を特定することはできません投稿、しかしself.navigationController
ための2つの一般的な理由がnilであることをコードから