2

いくつかのボタンを持つ UIViewController を含むストーリーボードがあります。ボタンの 1 つは UINavigationController へのモーダル セグエを実行し、NavController には UITableViewController が埋め込まれています。ホーム画面のボタンをクリックすると NavController に進みますが、戻るボタンがありません。

では、戻るボタンを取得するにはどうすればよいでしょうか。私はいくつかのことを試しましたが、うまくいきません。

助けてくれてありがとう!!

4

4 に答える 4

8

ナビゲーション コントローラーをモーダルに表示している場合、テーブルビュー コントローラーは、新しいナビゲーション コントローラーがプッシュした唯一のビュー コントローラーです。その場合、戻るボタンはありませんし、あるべきではありません。

モーダル ビューを閉じる tableview コントローラーを介して、キャンセル/完了ボタンをナビゲーション バーに追加することをお勧めします。

あなたのtableViewコントローラーviewDidLoad:メソッドで:

UIBarButtonItem *done = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonTapped:)];
self.navigationItem.leftBarButtonItem = done;

//Release done if not using ARC

次に、却下メソッド (の最も単純な実装) を追加します。

- (void)doneButtonTapped:(id)sender {

    [self.navigationController dismissViewControllerAnimated:YES completion:nil];

}
于 2012-10-18T18:50:27.420 に答える
1

UITableViewController サブクラスは、UINavigationController のルート ビュー コントローラーです。したがって、戻るボタンは自動的に表示されません。テーブルの行をタップして 2 番目のビュー コントローラーをスタックにプッシュすると、その 2 番目のビュー コントローラーのナビゲーション バーに [戻る] ボタンが表示されます。したがって、これは予想される動作です。

「戻る」ボタンを自分で作成して追加し (戻るボタンのように見える画像が必要になるか、コードで描画する必要があります)、それを TableViewController の navigationItem の leftBarButtonItem として追加できますが、私はそうしません。 . モーダルに提示されたView Controllerは「戻る」べきではありません。代わりに、ボタンは「閉じる」、「閉じる」、または「キャンセル」のようなものにする必要があります。

于 2012-10-18T18:58:45.293 に答える
1

UINavigationViewController は、View Controller のスタックのみを管理します。viewController をスタックにプッシュし、「戻る」を押すと、スタックからビューがポップされます。

UINavigationController をモーダルに提示しているため、その前に提示されたものについての知識はありません。目的の動作を実現する正しい方法は、メインの UIViewController を UINavigationController のルート ビュー コントローラーに設定することです。ユーザーがボタンをタップすると、新しい UITableViewController を UINavigationController のスタックにプッシュします。

于 2012-10-18T18:47:59.637 に答える