私はこのようなタブ付きアプリケーションを手に入れました:
見た目どおりにすべてを設定しましたが、まだ機能しません。私はすでに私の問題をグーグルで検索し、最初にテーブルビューをrootViewとして設定し、次にNavigationBarとしてNavigationControllerを設定する必要があると言われましたが、実際には理解できませんでした。あなたの誰かが私を助けてくれることを願っています。
私はこのようなタブ付きアプリケーションを手に入れました:
見た目どおりにすべてを設定しましたが、まだ機能しません。私はすでに私の問題をグーグルで検索し、最初にテーブルビューをrootViewとして設定し、次にNavigationBarとしてNavigationControllerを設定する必要があると言われましたが、実際には理解できませんでした。あなたの誰かが私を助けてくれることを願っています。
ストーリーボードを使用している場合は、ビューコントローラを選択し、[編集]メニューに移動して、[ナビゲーションコントローラに埋め込む]を選択します。
ここでのあなたの質問に対する私のコメントへのあなたの応答に基づいて、あなたがすべきことは次のとおりです。
まず、設定アプリのテーブルのように見せるために、のスタイルをに変更する必要がありUITableView
ますUITableViewStyleGrouped
。
階層は次のもので構成されます。
実際にviewControllers配列に追加されるUITabBarController
viewcontrollerは(ナビゲーションの最低レベルとしてタブバーがあることがわかります)、である必要がありUINavigationController
ます。ナビゲーションコントローラーのルートviewcontrollerは、テーブルビューを含む作成したuiviewcontrollerサブクラスである必要があります。(それが呼ばれているとしましょうSettingsViewController
)
SettingsViewController *settingsViewController = [[SettingsViewController alloc] init];
UINavigationController *settingsNavController = [[UINavigationController alloc] initWithRootViewController:settingsViewController];
必要な詳細ペインのタイプごとに、おそらく異なるUIViewControllerサブクラスを作成する必要があります(機能が異なる場合)。
このdidSelectRowAtIndexPath
UITableViewDelegate
関数では、適切な詳細ビューコントローラーを作成し、ナビゲーションスタックにプッシュします。
例として、ボリューム設定ビューコントローラがあるとします。以下は、先ほど述べた関数に含まれるコードです。また、選択した行のインデックスやセクションを実際にチェックして、どの詳細ビューを表示するかを判断する必要があることに注意してください。
VolumeSettingsViewController *volumeSettings = [[VolumeSettingsViewController alloc] init];
[self.navigationController pushViewController:volumeSettings animated:YES];
デフォルトでは、これはAppleSettingsアプリのナビゲーションとほとんど同じように機能します。ナビゲーションバーには、設定ビューに戻るための「戻る」ボタンが自動的にあります。
ストーリーボードを使用しない場合、これがコードで行われると仮定すると、階層の逆の順序で物を作成する必要があります-次のようになります:
これにより、次の階層が作成されます。
タブバーコントローラー->ビューコントローラー:ナビゲーションコントローラー->ルートビューコントローラー:Einstellungen