0

私はしばらくこれに苦労しており、オンラインで解決策をふるいにかけましたが、そこにたどり着くことができなかったので、素晴らしい人々に尋ねる時が来たと思いました. TableViewController押されたセルに応じて異なるビューに切り替えるために、テーブル ビュー ( ) を含むナビゲーション コントローラーを使用しようとしているタブ バー アプリケーションがあります。

テーブルビューのセルに触れるSecondViewControllerとロードされます(メソッドで背景を色付けして確認したため、これは機能していますviewDidLoad())が、インターフェイス(XIB)がロードされていないため、ウィンドウは空白です(またはバックグラウンドテストの場合は色付けされています) )。ウィンドウ ( ) には、ビューに直接アクセスするときに機能するSecondViewControllerが含まれているはずです。UIScrollerViewすべてのビュー コントローラーが 1 つXIBのファイルに含まれており、そのXIBファイルにはタブ バー コントローラーと、App Delegate に必要な空白のウィンドウ (ウィンドウとtabBarController) が含まれていることに注意してください。

TableViewController.mこれは私が(rootViewControllernavigationController)からビューを切り替える方法です

SecondViewController *viewSecond = [SecondViewController alloc];
self.secondViewController = viewSecond;
[self.navigationController pushViewController:self.secondViewController animated:YES];

これapplicationDidFinishLaunchingWithOptions()appDelegate.m

// Set the tab bar controller as the window's root view controller and display.
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
tabBarController.moreNavigationController.navigationBar.hidden = YES;  
return YES;

これは実際には古いプロジェクトからのフォローアップだったので、空白のウィンドウが必要な理由がわかりましたXIB(それが問題に関係している場合) テンプレート タブ バー アプリケーションでは必要ありません。私は iOS 開発を始めたばかりなので、曖昧なところがあれば申し訳ありません。どんな助けでも大歓迎です。

4

1 に答える 1

2

あなたので、あなたはあなたTableViewController.mの に逃しました。呼び出すだけでは nib から読み込まれません。initSecondViewControlleralloc

したがって、またはに変更 し
SecondViewController *viewSecond = [SecondViewController alloc];
ます
SecondViewController *viewSecond = [[SecondViewController alloc] init];

SecondViewController *viewSecond = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];

于 2012-12-22T14:14:59.840 に答える