3d Touch を実装しようとしていますが、Master - Detail アプリで特定の viewController に移動したいと考えています。
私が目指しているviewControllerは、階層の3番目のコントローラーです。
MasterViewController ----> SettingsViewController ----> ThirdViewController
TabBarItem ( IB から直接 SettingsViewController にセグエ経由で接続) を介して通常の操作で ThirdViewController にアクセスし、次に UIButton ( IB から直接 ThirdViewController にセグエ経由で接続) を介して ThirdViewController にアクセスできます。
つまり、MasterViewController ---> (barButtonItem をタップ) ----> SettingsViewControler ----> (uiButton をタップ) ---> ThirdViewController です。
私はすでに info.plist を修正しており、3D touch は正常に動作し、アクションを呼び出すことができます:
func application(application: UIApplication, performActionForShortcutItem shortcutItem: UIApplicationShortcutItem, completionHandler: (Bool) -> Void) {
var shortcutDictionary = shortcutItem.userInfo;
let shortcutString1 = shortcutDictionary!["key1"] as! String
if (shortcutString1 == "value1") {
// how do i get from here to the settingsController??
}
}
編集:
すでに試しました:
let viewController = MasterViewController() viewController.settingsButton.sendActionsForControlEvents(.TouchUpInside)
これにより、エラーが発生します。オプションの値をアンラップしようとすると致命的なエラーが発生します!
これはMasterViewControllerに存在しますが
@IBOutlet weak var settingsButton: UIButton!