2015-10-19 3 views
1

Я пытаюсь вызвать функцию из одного ViewController в другой, потому что в One у меня есть PageMenuVC (VC, где я пытаюсь вызвать функцию причины BarButtonItem, а в другой - tableview, которая отображается в PageMenuVC).Функция вызова из другого VC

Func в TableViewController:

func doEdit(sender: AnyObject) { 

    if (self.tableView.editing) { 
     editButton.title = "Upraviť" 
     self.tableView.setEditing(false, animated: true) 
    } else { 
     editButton.title = "Hotovo" 
     self.tableView.setEditing(true, animated: true) 
    } 
} 

Вызов в PageMenuVC

Я звоню

@IBAction func doEdit(sender: AnyObject) { 
    MojeTesty().doEdit() // What should be in doEdit?(here?)? 
} 
+0

Что делает функция 'MojeTesty()' при условии, что это функция) делает в вашем PageMenuVC? Предполагая, что он возвращает ваш экземпляр TableViewController, вы можете просто вызвать 'MojeTesty(). DoEdit (sender)' –

+0

Да. Но если я использую в скобках отправитель, как вы сказали, он не будет «работать», потому что кнопка не изменила имя кнопки, что в функции. – patrikbelis

+0

Он должен изменить editButton (который, я думаю, это Outlet), не то, что вы хотите? –

ответ

1

Что касается компиляции, то, решение такого рода вещь объявляет ваш doEdit следующим образом:

func doEdit(sender:AnyObject?) { 

Теперь вы можете пройти nil, так как у вас нет реального sender.

Однако это не будет иметь никакого эффекта, потому что, когда вы говорите MojeTesty(), вы получаете другой экземпляр этого класса - не настоящий, с которым хотите поговорить. Вам нужно остановиться и понять основные понятия объектно-ориентированного программирования (класс и экземпляр); вы никогда не сможете запрограммировать iOS, если вы не понимаете, что такое экземпляр.