2015-06-02 3 views
1

программно У меня есть UIButton прилагается к Панели навигации программно:Swift - UIStoryboardSegue всплывал ViewController

catButton.addTarget(self, action: "oc:", forControlEvents: .TouchUpInside) 
var catBarButton:UIBarButtonItem = UIBarButtonItem(customView: catButton) 
self.navigationItem.setRightBarButtonItem(catBarButton, animated: false) 

когда функция а() срабатывают я хочу контроллер

let segue = UIStoryboardSegue(identifier: "oc", source: self, destination: MDComDBCatsTVC()) 
prepareForSegue(segue, sender: but) 

вида поповера, но это не открыть MDComDBCatsTVC .. Как это сделать программно, потому что я не могу перетащить из кнопки в своем раскадровке, потому что моя кнопка добавлена ​​программно

ответ

1

вы можете использовать динамический p opup взгляды как этот

let vc = storyboard.instantiateViewControllerWithIdentifier("myPopupView") as! myPopupViewViewController 

self.presentViewController(vc, animated: true, completion: nil) 
0

Если вы хотите сделать это с помощью видеоредактора подключения контроллеров просматривать в раскадровке с Segue (дрэг от первого контроллера представления на второй, это не значит перетащить только из кнопок), имя которого Segue «ос», то в кнопке действий выполняет SEGUE как следующих

performSegueWithIdentifier("oc", sender: but) 
3

Я не могу перетащить из кнопки в моей раскадровке, потому что моя кнопка добавляется программно

Вы можете создать segue в раскадровке, перетащив с иконки контроллера вида на контроллер целевого представления. Этот segue можно затем использовать программно.

Нажмите на кнопку segue, чтобы назначить идентификатор в панели инспектора атрибутов. После этого segue может быть запрограммирован с использованием этого идентификатора.

Xcode будет настаивать на том, что popover segues имеет якорь. Сообщение об ошибке «Popover segue без анкера». Это можно решить в инспекторе атрибутов - свойство Anchor. Перетащите от круга к виду.

В действии для вашей программно созданной кнопки вы затем сможете получить доступ к SEGUE с использованием, например:

func buttonAction(sender:UIButton!) 
{ 
    performSegueWithIdentifier("popoversegue", sender: self) 
} 

(... или скорее что-то более надежное, используя if let и т.д.)

Attributes inspector

Смежные вопросы