タブ バー コントローラーと、対応する詳細ビューを備えたテーブル ビュー コントローラーが必要でした。私はこれが初めてなので、Apple の SimpleDrillDown を組み合わせてみました: http://developer.apple.com/library/ios/#samplecode/SimpleDrillDown/Introduction/Intro.html
...ストーリーボードに関する Ray Wenderlich のチュートリアル: http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1
Ray's は、タブを設定して最初のテーブル ビューを取得する方法を示していますが、詳細ビューを取得する方法を示していません。そのため、Apple の SimpleDrillDown から詳細ビューを取得する方法を学ぼうとしました (タブバーコントローラーを持っています)。
プログラムはエラーなしで実行されますが、テーブル ビュー (FactSheetsViewController) の行をクリックすると、青色 (選択状態) のままで、FactSheetsDetailViewController に移動しません。このメソッドでテーブル ビュー クラスにブレークポイントを設定すると、次のようになります。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"DisplaySelectedFactSheet"]) {
NSIndexPath *selectedRowIndex = [self.tableView indexPathForSelectedRow];
FactSheetsDetailViewController *detailViewController = [segue destinationViewController];
detailViewController.factSheet = [dataController objectInListAtIndex:selectedRowIndex.row];
}
}
プログラムを実行してセルをクリックしても、ブレークポイントに到達しません。
何が間違っていたのかわからないため、他にどのコードを投稿すればよいかわかりません。AppDelegate で間違って初期化したのではないでしょうか?
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UINavigationController *navigationController = [[tabBarController viewControllers] objectAtIndex:0];
FactSheetsViewController *factSheetsViewController = [[navigationController viewControllers] objectAtIndex:0];
DataController *controller = [[DataController alloc] init];
factSheetsViewController.dataController = controller;
self.dataController = controller;
return YES;
}
または、どうにかしてストーリーボードで物事を正しく設定していない場合。属性インスペクターで、FactSheetsViewController から FactSheetsDetailView へのセグエへの識別子を "DisplaySelectedFactSheet" に設定しました。
詳細を掲載させていただきますので、お役に立てれば幸いです。お知らせください。ありがとうございました。