2014-12-13 3 views
0

У меня есть функция в ViewController, которую я хотел бы выполнить из UIButton в ProfileViewController. Как мне это сделать? Ниже приведен код, который я попробовал.Выполнить функцию для другого ViewController

Код в ViewController

func hideProfileButton (sender:AnyObject) { 
    self.profileButtonOutlet.hidden = true 
} 

кодекса ProfileViewController

ViewController.hideProfileButton(self) 
+0

Поскольку метод вы вызываете это метод экземпляра, вам нужно получить указатель на экземпляр ViewController которые у вас уже есть, или использовать протокол делегата. Вы не можете вызвать метод в классе. – rdelmar

ответ

0

Вы не можете непосредственно выполнять @IBAction одного класса от UIButton другого класса
Здесь вы имеете дело, что, как владелец и ведомым ,
в файле раскадровки/Xib, если вы определяете, что владельцем вашего контроллера представления является ProfileViewController, тогда UIButton этого представления является только ответом на его владельцев @IBAction.

Вы можете иметь в ViewController, которые имеют одного владельца, как два XIb файлов с имеют тот же владелец, а затем вы можете сделать вещи, как вы говорите, в вопросе две разные XIb файлы кнопка вызова же @ IBAction бр>

Что вы можете сделать это ...
1] Создать в вашем ProfileViewController в @IBAction и позвонить ViewController's method
2] Создать delegate объект в ProfileViewController реализовать протокол, как «btnClicked» и сделать ViewController к response that delegate по его реализации.
3] Создание NSNotification и сделать ViewController в качестве наблюдателя и называют, что уведомление от ProfileViewController (не предпочтительнее раствора)

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