0

iPadアプリを作っています。

アプリのデザインに、iPhone のサイズの画面の一部を含めたいと考えています。これには、フォーム スタイルのグループ化されたテーブル ビューが含まれます。ユーザーはこれを使用して情報を編集/追加できます。

フォーム テーブル ビューの「ボタン」(行) の 1 つには、アクセサリ ビューとして開示アイコンがあり、タップすると、そのテーブルの代わりに別のビューをスライドさせたいと考えています。

UINavigationController's理想的には、画面上のセクション (View Controller のビュー) にビューを追加します。

CGRectMake(self.view.frame.size.width / 2, 20, 320, 400);

しかし、Apple のドキュメントにあるように、Navigation Controller をこのように (既存のビュー コントローラーのサブビューとして) 使用しないでください。

これを取得するために模倣または回避するにはどうすればよいですか?

4

2 に答える 2

1

私はそれが行われたのを見てきましたが、その中に表示するコントローラーの viewWillAppear/willRotate/etc メソッドに関していくつかの不具合を引き起こします。

回避策は、追加/削除するときに nav コントローラーで viewWillAppear などを手動で呼び出すことですが、最善の方法ではありません。

もう 1 つの方法は、閉じられないポップオーバーでこのコントローラーを表示することです。これは、UIPopoverController デリゲート関数を実装することで実現できます。

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController {
    return NO;
}

これにより、ユーザーはその外側をクリックしてもそれを閉じることができなくなります。バー ボタン アイテム (回転後に自動配置される) または四角形 (回転後に再配置する必要があります) から表示できるポップオーバーですが、ポップオーバー方向矢印を表示しないと、"親View Controllerにカーソルを合わせます。

于 2012-09-11T21:22:10.713 に答える
0

その領域に収まる UIView を作成し、そのビューにテーブルと必要なものをホストさせます。ナビゲーション バーのようにビューを「プッシュ」する必要がある場合は、ビュー アニメーションまたは UIView のトランジション メソッドを使用できます。これを行う場合、プライマリ クラスを混乱させないように、これらすべてのビューとコントロール、または少なくとも既存のクラスのカテゴリを管理する「ヘルパー」クラスを作成できます。

于 2012-09-11T21:19:20.967 に答える