2017-06-30 9 views
0

私はsegueが私のアプリで働いている方法とちょっと混乱しています。Segueの誤解

私はTabBarControllerであり、ViewControllerNavigationControllerに埋め込まれています。

enter image description here

私は "mySegueを" セグエするための識別子を追加しました。私は私のViewController内のいくつかのアクションを実行するときだから私はそうセグエが行われますが、私は理解していないいくつかのものを持っている

performSegue(withIdentifier: "mySegue", sender: self) 

を実行します。

  1. タブバーとナビゲーションバーなしで表示されます。どうして?私は彼らがデフォルトで目に見えるべきだと思った。

  2. 私はsegueをアニメーション化したいので、ビューは右から左に表示され、また巻き戻すことができます(単にスワイプして戻る)。しかし、スワイプバックは機能しておらず、ビューは下から上に表示されます。それはなぜです?

+0

ナビゲーションバーにあなたのセグをクリックし、属性インスペクタでタイプがプッシュ、モーダルではないことを確認してください。 –

+0

私はそれをプッシュして運がないように設定しようとしました – moonvader

+0

あなたのSegue *が '(Show eg push)'に設定されていて、あなたのストーリーボードを図示のように設定し、 'performSegue(withIdentifier: "mySegue"、sender:self) 'ですが、***次のViewControllerをナビゲーションスタックにプッシュしませんか?それから、あなたは間違ったことを見ている。一歩踏み込んで、既存のセグや接続を削除してから、それらを再実装してください。 – DonMag

答えて

0

をスワイプしています。それは、セグのすべてが正しい方法で行われているように見えるが、他の人が助けてくれるかもしれないが、そうするべきではない。

私の場合、SegueはViewControllerの黄色の円から2番目のViewControllerにドラッグしないでインターフェースビルダーで作成されたためです。 Segueはサブビューの1つ、またはViewController内のTableView/TableViewCellから作成されました。その場合、NavigationControllerでセグを作成していませんでした。

0

あなたはプッシュするセグエの種類を設定する必要があります - その方法はnavigagtionコントローラは、階層を発行し、それが実際にそのスタック、その名にプッシュされます。

+0

私はそれをプッシュし、運がないように設定しようとしました – moonvader

+1

あなたは 'show'を使う必要があります。ナビゲーションコントローラは、 'show'が使用されたときに新しいビューコントローラをナビゲーションスタックにプッシュします。チェック:https://developer.apple.com/library/content/featuredarticles/ViewControllerPGforiPhoneOS/UsingSegues.html –

0

あなたのsegueを水平方向に移動させたい場合は、segueのために(Show eg push)を使用する必要があります。私は、問題があった場所を指す必要がある - 私がこの問題を満たして初めてではなかったとして、それは、デフォルトではバック

[1]: https://stackoverflow.com/a/

+0

私は知っています - この種類は既に選択されています – moonvader

+1

@Fangming ... "スワイプバック" *はナビゲーションコントローラのデフォルト動作です – DonMag

+0

@moonvader更新された –