2016-08-21 13 views
8

私は、現在のXcode 8 beta 6では、モーダルプレゼンテーションセグを巻き戻し、以前にビュースタックをナビゲーションスタックに表示するために、Xcodeはこの目的に使用できる既存の@IBActionsの名前に "WithSegue"を追加します。巻き戻しセグーを壊します(これは実行されません)。ストーリーボードファイルをソースコード(XML形式)で編集し、この "WithSegue"を@IBActionメソッド識別子から削除すると、segueは期待通りに機能します。たとえば、元のビューコントローラ(unwind segueの宛先)の私のアンワインドメソッドは "unwindFromSettingsToTableView"と呼ばれ、モーダルに表示されたバーボタン項目をCTRL-接続すると、Xcode/Interface Builderはこのメソッドの名前を "unwindFromSettingsToTableViewWithSegue" View ControllerをシーンドックのView ControllerのExit項目に追加します。Xcode 8 beta 6「WithSegue」が@IBAction unwindメソッド名に自動的に追加されたために、unwind segueが壊れているように見える

これはXcode 8 betaのバグですか?それは既知のバグですか?何か不足していますか?

以前に接続したunwind segues(Xcode 7で接続)を確認しましたが、この "WithSegue"という接尾辞はありません。既存の「ヴィンテージ」アンワインドセグを削除してXcode 8で再度接続すると、Interface Builderは「WithSegue」という接尾辞付きの同じメソッド名を提案し、それらのセグレットは中断します。ストーリーボードのソースコードのサフィックスを削除すると、unwind segueが再び機能します。

兆候を得るのは素晴らしいことでしょう。この動作は厄介です。

最高の願い! ビョルン

スウィフト3では
+0

おそらく 'unwindFromSettingsToTableView'がどのように宣言されたかの例で質問を更新できます(たとえば、パラメータ名で' _'を使用しましたか?)。また、ベータ6で記述した動作を再現することができないため、新しいテストプロジェクトで記述したこの動作を再現することもできます。現在のプロジェクトに問題がないことを確認しましょう。 – Rob

+0

"これはXcode 8 betaのバグですか?"そうではありません。 – matt

答えて

7

、あなたが最初のパラメータの名前ではないためにあなたの@IBActionメソッドを定義し、それがWithSegueを追加したくない場合は:、あなたはその_構文を使用していない場合は

@IBAction func unwindHome(_ segue: UIStoryboardSegue) { 
    // this is intentionally blank 
} 

@IBActionに接続すると、名前にWithSegueが追加されます。余談として

私は私のアンワインドアクションについては、上記の構文を使用する場合、それはXcodeの8で正常に動作し、ベータ6

、私はベータ6に上記のよう_構文を使用していない、それが名前アクションunwindHomeWithSegueしかし、それはまだストーリーボードXMLの編集は必要ありません、長い名前で動作します。私はあなたの非機能的な巻き戻しセグが他の問題の結果であるかどうか疑問に思います。さらに診断するためには、問題の再現可能な例が必要です。おそらくあなたはMCVEを共有することができます。

+1

こんにちは、ロブ - 親愛なる皆さん、あなたの返信に感謝します - 非常に便利です!私はSwift 2.3でまだそのプロジェクト(Xcode 8にもかかわらず)が残っていることを言及しておきたいと思います。これは私の元々の問題の起源であるようです:Swift 2.3では、メソッドの命名規則(初期メソッドのパラメータに明示的に必要なアンダースコアがない場合は、呼び出し時に名前を付けるべきではありません)。私は、Robが提案したメソッド名を使用して、素早く新しいプロジェクトを作成しました。問題なく動作します。どうもありがとう!! – bBcdd

3

私はOPと同じ問題を持っていた、IOS 8を使用してXcodeで8ベータ版を迅速2.3を使用して6

Thisポストは、プログラムでセグエをほどくする方法を説明しました。そしてステップ3で、ドキュメントアウトラインで巻き戻しセグを選択します。

これを選択し、右上のアクションunwindToSecondVCWithSegueunwindToSecondVCに変更すると、問題を解決したコードと一致します。

@IBAction func unwindToSecondVC (segue: UIStoryboardSegue) { 
    print("unwindToSecondVC") 
} 

unwindSegue

+0

こんにちは!ありがとう - それは私がやったことです。私はXcodeとこのすべてのビジネスにはまだまだ慣れています - 基本的なフレームワークやプログラミング言語(Swift)のすべての変更、つまりWWDCの次の月の毎年で同様の「奇妙な」動作が期待されると思います。 :-Dありがとう! – bBcdd

+0

ようこそ。はい、スイフト3は動くターゲットです。新しいベータ版が出てくる度にこのバージョンにコードを更新しようとしました。ベータ6では私はそれをverにリファクタリングしました。 2.3。 FBおよびAWS SDKの例のほとんどは、ver用です。 2と私は移行する前にしばらくの間、素早く3が外出するまで待つでしょう。 :-) – kometen

0

この問題はまだXcodeの8.0だけでなく、ベータ版のリリースバージョンで発生します。私もアンワインドセグエに気づい何

は、サフィックスが「WithUnwindSegue」の代わり「WithSegue」

は、私があまりにも迅速2.3のプロジェクトを使用していたし、アンワインドセグエを作成だったということです。上記と同様に、ストーリーボード上では、WithUnwindSegue接尾辞をアクション segueのAttributes Inspectorのプロパティ(フィールド)で削除します。

関連する問題