2

次の構造のアプリを設計する方法はありますか。私は非常に多くのチュートリアルを試しましたが、どれも私が試みていることをしません。出来ないからなのかな。

マスタービューに複数のアイテムを持つテーブルビューがあるSplitViewControllerが必要です。各アイテムは、選択可能なアイテムを含む新しい Masterview テーブルにプッシュされます。

最初のサブ メニューで項目を選択すると、DetailViewController1 が開き、関連する情報が表示されます。

別のサブメニュー項目で項目を選択すると、DetailViewController2 が開き、情報が表示されます。

Apple の MultipleDetailView Controller チュートリアルを見てきましたが、これは単一レベルの MasterViewController テーブル用に設計されています。NavigationController を MasterDetailController に配置しても、新しい detailviewcontrollers へのプッシュを取得できますか?

AppDelegate でサブビューを選択すると、選択に応じてサブビューをどのように変更し続けるのでしょうか?

また、ストーリーボードを使用してみましたが、スタイル「置換」を使用するセグエを使用して部分的な解決策を得ました。ナビゲーション ベースの MasterViewController を使用できることがわかり、新しい detailviewControllers にプッシュされましたが、popovercontroller を正しく機能させることができませんでした。ツールバーを表示して、MasterViewController を再表示するボタンを表示できませんでした。

それが明らかだったことを願っています。ありがとう

4

1 に答える 1

0

iOS 6 でストーリーボードを含むマスター ディテール テンプレートを使用すると、次のように動作します。Xcode 4.6.2 を使用しています。

  1. MasterViewController のコードを変更して不要なものを削除し、そのサブクラスを作成します。SubviewMasterViewController または任意の名前を選択します。

  2. テーブルビュー コントローラーをストーリーボードにドラッグし、現在のマスター ビュー コントローラーにセグエで接続します (セルからテーブルビューではなく、テーブルビューからテーブルビューへ)。属性インスペクターで、そのセルの識別子をマスター ビュー コントローラーのセルとは異なる名前に変更します。

  3. セグエにその識別子の一意の名前を付けます。サブレベルを表示します。

  4. マスター ビュー コントローラーに接続したテーブルビュー コントローラーを割り当てて、属性インスペクターで作成したばかりのサブクラスを使用します。

  5. MasterViewController.m ファイルに戻ります。の中に

    • (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath メソッドを使用して、performSegueWithIdentifier:sender メソッドを使用して、追加した tableview コントローラーに移動します。
  6. SubMasterViewController.m ファイルで、

    • (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath メソッド、具体的には行 UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath] セル識別子をそのセルに設定することにより、新しいテーブルビュー コントローラー。
  7. また、その行の UITableViewCell *cell の名前を、代わりに UITableViewCell *cellular のような別の名前に変更してください。そうしないと、Xcode がヒッシー フィットをスローします。

  8. マスター ビュー コントローラーに追加するテーブルビュー コントローラーごとに、手順 2 ~ 7 を繰り返します。各テーブルビュー コントローラーのセル識別子には、必ず一意の名前を使用してください。

于 2013-05-03T03:26:27.760 に答える