2016-11-04 4 views
0

Это базовый и должен работать из коробки, поэтому я не знаю, почему это не так. Я попытался удалить ссылку на IBAction и перезаписать ее снова - журнал не показывает, что он был нажат. Weird.IBAction для стандартной кнопки не работает

enter image description here

вот код:

@IBAction func onManClicked(sender: AnyObject) { 
    NSLog("onManClicked") 
    person.gender = 1 
    genderUpdate() 

} 

NSLog часть никогда не срабатывает. Итак, ни одна из четырех кнопок, которые у меня есть в этом ViewController, не отвечает. Где проблема?

Вот как я добавляю весь этот взгляд - я думаю, что это проблема.

let vc = PersonalDialog(nibName :"PersonalDialog", bundle: nil, section: section, position: position, person: Person()) 
    vc.view.frame = UIScreen.mainScreen().bounds 
    parentVC.view.addSubview(vc.view) 

Я новичок в IOS в разработке, с я не знаю, жарко, чтобы сделать это правильно - теперь я понимаю, что я добавил подвид, но не добавить контроллер для него. Вероятно. Однако он называет метод viewDidAppear

ответ

1

Вы пробовали проверить, включено ли взаимодействие кнопок или его родительское представление? Если бы он был перекрыт некоторыми объектами или другими видами?

Я испытал это раньше, и я просто проверил все это, и это несколько устранило проблему.

0

Вы говорите:

Я попытался удалить ссылку на IBAction и переписать его снова

So ... Попробуйте удалить соединение в Interface Builder, а затем восстановить (вы уже, наверное, сделано)

Еще одна вещь, на которую нужно обратить внимание.

Если я, в Swift 3, создать метод, как это:

@IBAction func buttonClicked(sender: AnyObject) { 
     print("hello") 
    } 

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

enter image description here

Обратите внимание на «с sender ", который я не добавил, но который является частью нового названия параметра Swift 3.

Чтобы избежать этого, я должен переименовать мой метод к этому:

@IBAction func buttonClicked(_ sender: AnyObject) { 
    print("hello") 
} 

(обратите внимание на _ перед отправителем)

А если я потом воссоединиться:

enter image description here

все выглядит так, как ожидалось. Может быть, это и вас укусило? Интерфейс строителя ищет @IBAction под названием onManClickedWithSender и вы определяете @IBAction под названием onManClicked.

Надеюсь, это вам поможет.

+0

Да, я удалил ссылки и с IB. Вы можете посмотреть на изображение, он вызывает метод onManClicked, как в коде, это также метод onManClicked. Ни один из 4 щелчков кнопки не работает. Я редактировал свой пост, чтобы показать, как это представление добавлено. Может быть, это проблема? Я новичок в iOS и быстро. – user2976267

+0

Не могли бы вы переименовать его в 'onManClicked (_ sender: AnyObject)' (обратите внимание на _) – pbodsk

+0

да, и он показывает предупреждение «Постороннее» _ в параметре: «sender» не имеет имени аргумента аргумента. Можете ли вы посмотреть конец моего отредактированного сообщения - может быть, проблема есть? – user2976267