私はSwiftで開発中です。SwiftでSegue経由で次のビューにデータを渡すには?
次の画像は私のストーリーボードです。
メインビューがあります。 メインビューはスキャンビューに表示を変更してもScan view
プレススキャン(右バーボタンアイテム)にデータを渡します。 ストーリーボードセグエの
そして識別子があるScanView
私はスキャンにメインからデータを渡すために、次のコードを使用
プレススキャン(右バーボタン項目)。
self.performSegueWithIdentifier("ScanView", sender: self)
そして、次のビュー
//prepare jumping to next page
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier=="ScanView"){
let desViewController = segue.destinationViewController as! ScanViewController
desViewController.myCenteralManager = myCenteralManager
}
}
にデータを渡すそして、それはlet desViewController = segue.destinationViewController as! ScanViewController
でクラッシュし、次のようなエラーが表示されます:
Could not cast value of type 'UINavigationController' (0x3960e0a8) to 'BLEConnect.ViewController' (0x5514c).
誰かがどのように解決するために私を教えることができます問題 ?前もって感謝します。
エラーメッセージはかなり明確です。 UINaigationControllerをScanViewControllerとして強制的にキャストしようとしました。メインビューコントローラをスキャンビューではなくナビゲーションコントローラに埋め込むか、ナビゲーションコントローラのViewControllersプロパティからスキャンビューコントローラにアクセスする必要があります。私はまた、スキャンビューからメインビューに戻るセグの見た目が気に入らない。アンワインドセグを使用するか、メインビューコントローラをナビゲーションコントローラに組み込むと、デフォルトで戻るボタンが表示されます – Paulw11