7

tabbarcontroller を使用したスト​​ーリーボードがあります。タブバーの1つにテーブルビューがあり、ユーザーがテーブルビューから行をタップすると詳細ビューが開きます。問題は、詳細ビューのタブ バーを開いてナビゲーション バーが非表示になることです... ストーリーボードで詳細ビューを新しいビュー コントローラーとして作成し、新しいファイルを作成して詳細ビューのクラスを参照します。

didselectrowatindexpath のコード:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath  *)indexPath {

detalleYouTube *dvController = [[detalleYouTube alloc] init];

[self.navigationController pushViewController:dvController animated:YES];

}

前もって感謝します!

4

3 に答える 3

7

これはちょっと古いですが、誰かがこれを行う必要がある場合は、簡単な方法があります:

タブ バーのビューから detalleYouTube にセグエを追加し、セグエに識別子を追加して、次の操作を行うことができます。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath  *)indexPath
{
[self performSegueWithIdentifier:@"segueIdentifier" sender:tableView];
}
于 2012-12-04T20:44:47.790 に答える
5

これに対する別のアプローチは、tableView:didSelectRowAtIndexPath を使用せず、代わりに prepareForSegue:sender を使用することです。

私がやった方法は次のとおりです。

-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
    DetailViewController *viewController = [segue destinationViewController];
    CustomObject *custObject = [arrayOfObjects objectAtIndex:[self.tableView indexPathForSelectedRow].row];
    viewController.objectNeeded = custObject;
}

この例は、詳細ビュー コントローラーがテーブル ビュー コントローラーに接続されているという考えに基づいています。

于 2012-07-18T17:40:37.600 に答える
4

「Detail」ビューがストーリーボードの一部として (別の XIB ではなく) あると仮定します。その場合は、「Detail」TabBarItem シークの先頭に別の NavigationController を配置する必要があります。

このページには、あなたが達成しようとしていることについての良いチュートリアルがあります: http://maybelost.com/2011/10/tutorial-storyboard-in-xcode-4-2-with-navigation-controller-and-tabbar-controller -パート1/

また、より詳細なストーリーボード チュートリアルへのリンクも確認してください。

http://www.raywenderlich.com/5138/beginning-storyboards-in-ios-5-part-1

http://www.raywenderlich.com/5191/beginning-storyboards-in-ios-5-part-2

于 2012-01-04T22:11:48.173 に答える