UISplitViewController の詳細ペインとしてテーブル ビューを使用したいと考えています。ツールバーを上部に配置するにはどうすればよいですか? テーブル以外の詳細ビューと同じ方法でバー ボタン アイテムを追加できるようにしたいと考えています。ありがとう。
3 に答える
この問題に対する私のフラストレーションは、ツールバーのような他の UI 要素を追加できない UITableViewController クラスを使用しようとしたことにありました。UIViewController オブジェクトを作成し、ツールバーとテーブル ビューをその nib に個別に追加することで解決しました。次に、ViewController にテーブル ビューのデリゲート メソッドとデータ ソース メソッドを実装させました。よく働く。
一般的なパラダイムは、マスター ページと詳細ページの最上位コントローラーとして UINavigationControllers を使用することです。
したがって、ビュー階層は次のようになります (大まかに言えば)
- アプリケーション ウィンドウ
- UISplitViewController
- マスター: UINavigationController
- カスタムコントローラー(tableViewまたはUIView)があります
- 詳細 : UINavigationController
- カスタムコントローラー(UITableViewCONtroller / UIVIEWcontroller)がある
- マスター: UINavigationController
- UISplitViewController
この大雑把な図が理にかなっていることを願っています。
UINavigationController を最上位コントローラーとして使用する特典として、ツールバーを「無料」で入手できます。
self.navigationController.toolbar
私はこれを別の方法で解決しました。navigationBar がない場合は、tableView の上部にツールバーを追加し、最初のセクションのヘッダーの高さを変更します。唯一の問題は、ツールバーが tableView でスクロールすることです。
これを TableViewController の ViewDidLoad に追加します
if (! self.navigationController.navigationBar) {
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 44)];
toolBar.barStyle = UIBarStyleBlackOpaque;
[self.tableView addSubview:toolBar];
}
このメソッドを追加します。
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection: (NSInteger)section
{
return 50;
}