iOS: нажатие кнопки в виджете "Сегодня" не вызывает действия
У меня есть три файла:
- SummaryView.xib -> содержащий схему моего взгляда
- SummaryView.swift -> контроллер для представления выше с выходами, определенными для подпредставлений (например, кнопка, обсуждаемая в этом вопросе)
- TodayViewController.swift -> контроллер для виджета "Сегодня"
Я загружаю SummaryView.xib в мой TodayViewController, используя этот код:
var summaryView: SummaryView!
summaryView = UINib(nibName: "SummaryView", bundle: NSBundle.mainBundle()).instantiateWithOwner(SummaryView.self, options: nil)[0] as! SummaryView
Xib содержит кнопку с выходом, определенным в контроллере SummaryView.swift:
@IBOutlet weak var openAppButton: UIButton!
@IBAction func openAppButtonClicked(sender: AnyObject) {
let url = NSURL(string: "MyApp://")
sender.extensionContext!!.openURL(url!, completionHandler: nil)
}
К сожалению, эта функция никогда не вызывается при нажатии кнопки. После этого я определил дополнительную цель в контроллере Today Widget:
summaryView.openAppButton.userInteractionEnabled = true
summaryView.openAppButton.addTarget(self, action:#selector(TodayViewController.openApp(_:)), forControlEvents: UIControlEvents.TouchUpInside)
вместе с методом
func openApp(sender: AnyObject) {
let url = NSURL(string: "MyApp://")
sender.extensionContext!!.openURL(url!, completionHandler: nil)
}
но этот метод тоже не вызывается.
Однако щелчок вызывает что-то, как я вижу в консоли следующие записи:
2016-09-21 14:51:45.667049 My App Widget[7546:1001683] subsystem: com.apple.UIKit, category: GestureEnvironment, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-21 14:51:45.667669 My App Widget[7546:1001683] subsystem: com.apple.UIKit, category: GestureExclusion, enable_level: 0, persist_level: 0, default_ttl: 1, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
Что мне не хватает?
ура