2017-10-22 8 views
0

私はXcodeビューエディタとSwiftで作業しています。Segueの後に@IBOutletsを失う

私は、2つのタブを持つタブバーコントローラを含むメインビューを持っています。 2番目のタブには、@IBoutlet var myLabel: UITextLabel!があります。内側にviewWillAppear私はこのラベルにいくつかのテキストを入れます。

最初のタブには、プッシュセグを介して3番目のビューを起動するボタンがあります。この新しいタブには、タブバーコントローラを含むメインビューに戻るバックボタンがありますプッシュセグも)。

私のアプリを起動すると、私の2番目のタブに入って、UITextLabelのテキストが変更されます。 私はまだ私の最初のタブに移動し、それらの間をナビゲートすることができます。 しかし、問題は、最初のタブのボタンをクリックしてキャンセルし、次に2番目のタブに戻り、私のUITextLabelが変更されないことです。そして、私はもうこれ以上行動することはできません。しかし、これは無意味ではありませんが、それはまだ最初のUITextLabelに接続されています。

どこが間違っていますか?

答えて

1

いくつか間違っています。

タブ付きのアプリケーションでは、タブバーコントローラは、アプリケーションのルートレベルのナビゲーション方法である必要があります。常に表示されている必要があります。ユーザーは、別のタップをタップしてアプリの別の部分に切り替えることができます。

したがって、最初のタブはナビゲーションコントローラに接続する必要があります。ユーザーがボタンを押すと、新しいView Controllerをそのナビゲーションコントローラーにプッシュする必要があります。タブバーは引き続き表示され有効になり、ユーザはコントローラ1を表示するように切り替えることができます。

次のもの:

あなたが「私は(あまりにもプッシュセグエを介して)タブバーコントローラを含むメインビューに戻って私を取得戻るボタンを持っている」と言います

これは非常に間違っています。戻るボタンは、現在のナビゲーションスタックのビューをポップするはずです。彼らは何かを押すべきではありません。プッシュセグを使用するたびに、View Controllerの新しいインスタンスを作成してプッシュし、他のView Controllerをナビゲーションスタックに残します。

関連する問題