2016-04-08 12 views
0

私は、次のストーリーボードをしているでは動作しません。そのうちの1つでは、ボタンがあり、 "ちょっと"の画面を表示するためにセグをトリガーする必要があります。私は、次のコードを書いているperformSegueWithIdentifierは異なるのViewController

@IBAction func addNewDateButtonDidTouched(sender :AnyObject) { 
    let mainStoryboard = UIStoryboard(name: "Main", bundle: nil) 
    let storyboardInit = mainStoryboard.instantiateViewControllerWithIdentifier("mainview") 
    storyboardInit.performSegueWithIdentifier("showNewDate", sender: self) 
} 

この@IBActionは(Xcodeのは、任意のエラーを返しません)initalビューコントローラをリロードし、セグエcorrecltyを行うようです。しかし、 "ちょっと"の画面が表示されず、viewDidLoad()が読み込まれません。

ヒント?代わりに

storyboardInit.performSegueWithIdentifier("showNewDate", sender: self) 

を呼び出すの

答えて

2

は、識別子 "mainview" を持っているUIViewControllerをインスタンス化しますあなたのコード内

self.performSegueWithIdentifier("showNewDate", sender: self) 
0

storyboardInitを試してみてください。 しかし、このUIViewControllerは、コントローラにセグを実行するように要求しているときに画面に追加されていません。

だから、私はそれをしません。その後、instantiateViewControllerWithIdentifier、および:

  1. は、現在のコントローラからセグエを作成し、コードだけでこれを行う:self.performSegueWithIdentifier
  2. このようなちょっとコントローラをインスタンス化し、私はどうなるのか、ちょっと画面にセグエすることのいずれかでありますただしてくださいself.presentViewController

したがって、新しいコントローラに移行するには、現在のコントローラから開始する必要があります。

0

私が正しくあなたのViewControllerの階層を理解していれば...

セグエをトリガーするボタンが含まれているのViewControllerは、私はあなたがpresentingViewController?.performSegueWithIdentifier("showNewDate", sender: self)を呼び出すために持っていると思うストーリーボードでセグエの設定を持っているのViewControllerのchildviewcontrollerからです。

関連する問題