私は "toSecond"という名前のsecondViewControllerにsegueを持つviewControllerを持っています。xibからperformSegueWithIdentifierを呼び出す方法は?
のViewControllerでviewController().goToSecond()
私はこのコード
func goToSecond() {
self.performSegueWithIdentifier("toSecond", sender: self)
}
と機能を持っていますが、私は押したとき:のViewControllerで は、私はアクションでボタンがあり、こののCustomViewでcustomView.xib
let myCustomView = NSBundle.mainBundle().loadNibNamed("customView", owner: self, options: nil)[0]
をロードカスタムビューのボタン:エラー:
viewController has no segue with identifier 'toSecond'
この関数をviewControllerから直接呼び出すと、すごくうまくいきます!
私のカスタムビューからperformSegueWithIdentifierを呼び出すにはどうすればよいですか?
のCustomViewソースコード:
import UIKit
class customView: UIView {
@IBAction func ToSecondButton(sender: AnyObject) {
viewController().goToSecond() }
}
のViewControllerのソースコード:
import UIKit
class viewController: UIViewController {
...
let myCustomView = NSBundle.mainBundle().loadNibNamed("customView", owner: self, options: nil)[0]
self.view.addSubview(myCustomView)
func goToSecond() {
self.performSegueWithIdentifier("toSecond", sender: self)
}
...
}
カスタムビューのために、ファイルの所有者は、ビューコントローラである場合は、私は理解していないどのようにこのコード: ' viewController()。goToSecond() ' は、カスタム表示の中に含まれています。カスタムビューのソースコードをさらに提供できますか?カスタムビュー内でビューコントローラへの参照をどのように作成していますか? –
私はviewControllerを提示するにはcustomViewを提示... viewControllerとsecondViewControllerの間の私のsegue ...私はviewControllerからfunc goToSecond()を直接呼び出すことができますが、customViewからはできません!関数であれば、goToSecondはprint( "Click!")のようなものを書いています。 – Dmitry
今後、[Cocoa命名規則](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingBasics.html#//apple_ref)に固執することをお勧めします。/doc/uid/20001281-1002242-BBCIJGDB)、すべてのクラス名は大文字で始まります。これは不必要に混乱していました... – Rob