1

iPadバージョンのアプリでブログを表示するためにスプリットビューコントローラーをセットアップしたばかりのアプリがあります。現在の設定は、マスターコントローラーがブログからさまざまな記事を表示するためのテーブルビューであり、詳細コントローラーは、記事のコンテンツを表示するために使用されるWebビューを内部に備えたビューコントローラーです。問題は、アプリに他のいくつかの機能があることです。iPhoneバージョンでは、タブバーコントローラーを使用してナビゲートします。アプリの他のセクションに移動できるようにするボタンを詳細コントローラーに追加するためのオプションは何ですか?SplitViewController内にTabBarControllerを取得できないことはわかっているので、ガイダンスが必要です。

Engadgetアプリは、ポートレートモードで開くとアプリのテーブルビューが表示され、下部にコントローラーが表示されて写真などのさまざまなものに移動できるように設定されています。ランドスケープモードではテーブルビューが左側に表示されます。記事のテキストは右側にあります。ポートレートモードで開いても空白のページがなく、ナビゲーションバーにボタンを追加するだけでなく、他のページを表示する機能があるように設定したいだけです。

4

1 に答える 1

0

SplitViewControllerの詳細ビューにtabBarControllerを追加できます。そのコントローラーのxibファイルにUIViewController応答するを作成し、オブジェクトを追加してUIViewControllerにリンクするだけです。ビューにタブバーコントローラーを追加します。<UITabBarControllerDelegate>UITabBarControllerviewDidLoad

-(void)viewDidLoad {

     ...

     [self addChildViewController:myTabBarController];

     //add the tabBarController view
     [self.view addSubview:myTabBarController.view];

}

これUIViewControllerは詳細ビューに割り当てられます。これはうまくいき、私は以前に試しました。しかし、アップルがそれを許可するかどうか?わからない!

編集:

まず第一に、決して自分自身を呼ぶべきではありませんviewDidLoad

また、コントローラーがxibファイルのSplitViewControllerにリンクされている限り、必要ないと思いrootipadます。detailipad

あなたのRootViewiPad(マスター)の中に以下を追加してくださいviewDidLoad

-(void)viewDidLoad {

    ...

    if (self.interfaceOrientation == UIInterfaceOrientationPortrait || self.interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) {

        //select the first row to load 
        [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] animated:NO scrollPosition:UITableViewScrollPositionNone];

        //NOTE, I'm assuming that selecting the cell will load the detail view.
        //if that is not the case, you need to do what ever you need to load the 
        //detail view.
    }
}

この動作を毎回(最初のロード時だけでなく)発生させたい場合は、-(void)viewWillAppear代わりにコードをメソッドに追加してください。

于 2012-06-30T21:28:14.047 に答える