web-dev-qa-db-ja.com

ナビゲーションバーを追加しましたが、戻るボタンはありませんか?

テーブルビューを作成し、そこからユーザーがセルを押したとすると、detailItemViewに移動しますが、現時点での唯一の問題は、ユーザーがdetailItemViewにいるときはいつでも、ナビゲーションコントローラーが既に埋め込まれていると思っても、戻るボタンがないことです。

ユーザーがセルを押すとセグエを実行するコードは次のとおりです。

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

    // Get the new view controller using [segue destinationViewController].
    var nav = segue.destinationViewController as! UINavigationController
    var detailScene = nav.topViewController as! DetailViewController


    // Pass the selected object to the destination view controller.
    if let indexPath = self.tableView.indexPathForSelectedRow() {
        let row = Int(indexPath.row)
        detailScene.currentObject = objects?[row] as? PFObject
    }
}

ストーリーボードのスクリーンショット:

enter image description here

編集されたスクリーンショット

enter image description here

以下の答えを試してみましたが、まだ戻るボタンがありません

別のスクリーンショット、detailViewコントローラーには戻るボタンがありません

enter image description here

12
sinusGob

NavigationController内にTableViewControllerを埋め込みます。直接DetailViewControllerではありません。スクリーンショットをご覧ください。

TableViewControllerとDetailViewControllerを接続するセグエのタイプがShow(e.g. Push)であることを確認してください。文字通り Push Navigationstackの上に新しいビューを置く必要があります。

Check screenshot

10
gutenmorgenuhu

Tableviewcontrollerとdetailviewcontrollerの間のリンクであるStoryBoardSegueをクリックします。属性インスペクタで、チェックされている場合でも、「アニメーション」チェックをクリックする必要がある場合があります。これは、「種類」ドロップダウンメニューにある「表示(例:プッシュ)」を選択した後に行います。次に、アプリを実行し、アプリを停止した後、同じ「アニメーション」オプションを再選択します。これはバグだと思います。解決方法を見つけるのに1時間かかりました。さらに、非推奨の「プッシュ」を使用できますが、これにより警告が表示されます。非推奨の「プッシュ」は、StoryBoardSegue属性インスペクターの「種類」の下にあります。

3
Wallace Duncan

私はちょうど同じ問題を抱えていましたが、セグエを削除し、再度追加してすぐに識別子を与えることで解決しました。

3
OBEE

私もこれに苦労していて、セグエの識別子に名前を付けました。テーブルビューからビューへのセグエ(矢印)を選択し、オプションのある右上に移動して、[属性インスペクターの表示]を選択するだけです。識別子のフィールドがあります。

1
user155229

属性インスペクタの「インターフェイススタイル」をdetailViewの「推定」に変更

0
Amandeep

現在のビューコントローラーがナビゲーションコントローラーに埋め込まれている場合は、ナビゲーションコントローラーに詳細ビューコントローラーを埋め込む必要はありません。ボタンを詳細ビューコントローラに接続するだけで、戻るナビゲーションが自動的に表示されます。

0
Badr

uinavigationUItableviewで作成し、セルを(show)として接続します

0
Steven