2016-12-04 12 views
0

次のシナリオがあります。ビューコントローラがあり、プログラムによって別のビューに移動する必要があります。ユーザーに設定を変更する機能を提供します。
私はVC1とVC_settingsを持っていて、それらのコントローラの間に現在のモーダルセグがあります。私はsegueに識別子を与え、次のように呼んでいます。異なるビューコントローラから同じビューを開く

performSegue(withIdentifier: "SegueToSettingsView) 

これは問題なく動作します。設定ビューが開き、VC1に戻ることができます。

もう1つのビューコントローラVC2で同じ機能を使いたいと思います。私は設定ビューを再利用したいが、問題はセグが既にVC1とVC_settingsの間に接続されており、VC2のために新しいものを接続することができないということである。
VC2で上記のコイスを使って既存のセグを呼び出そうとすると、アプリケーションがクラッシュします。

答えて

0

複数のビューから1つのビューコントローラーのセグを作成することは可能です。ここでは、VC1から設定、VC2までのセグが有効な設定になるように設定しました。 enter image description here

あなたはセレクタが正常に動作している実行も「SegueToSettingsView」という名前のセグエに接続VC1とVC_settingsを持っているので、それは

+0

を選択します。しかし、Xcodeの手順を説明してくださいか、少しコードスニペットを作成/使用する方法を教えてください? – altralaser

0

を助け願っています。

必要に応じて、VC2からVC_Settingsまで別のセグを作成し、別の名前を付けます。次のコードを使用してセグを実行します。 セグエ作る

performSegue(withIdentifier: "SegueToSettingsViewFromVC2") 

ステップ:次に enter image description here をあなただけの依存関係を表示するため、残念ながらあなたのスクリーンショットが私のために少し混乱して接続や設定識別子

enter image description here

+0

はい、それが私の最初のアイデアでした。しかし問題は、VC_settingsを選択し、接続タブの下を見て、「プレゼンテーションセグ」をクリックすると、「プレゼンテーションモーダル」が既に接続されていることがわかります。それはVC1に接続されているので明らかですが、同じタスクで2番目のセグを作ることはできないようです。 – altralaser

+0

これは、あなたがsegueを実行している場所からviewcontrollerの下に来るでしょう。 – Saranjith

+0

あなたはできるだけセグの数を決めることができます – Saranjith

関連する問題