होम स्क्रीन से 3 डी टच शॉर्टकट का उपयोग करते समय मैं दृश्य दृश्य नियंत्रक को segue करने का प्रयास कर रहा हूं।कैसे प्रस्तुत करें UITabBarController और UINavigationBarController
एप्लिकेशन UITabBarController
के भीतर एम्बेड किया गया है और प्रत्येक टैब रूट नियंत्रक UINavigationController
है।
यहां बताया गया है कि मैंने प्रत्येक शॉर्टकट के लिए व्यू कंट्रोलर लोड करने के लिए शॉर्टकट को संभालने का प्रयास कैसे किया।
private func handleShortcutItem(shortcutItem: UIApplicationShortcutItem) {
if let rootViewController = window?.rootViewController, let shortcutItemType = ShortcutItemType(shortcutItem: shortcutItem) {
let sb = UIStoryboard(name: "main", bundle: nil)
let helloVC = sb.instantiateViewControllerWithIdentifier("HelloVC") as! HelloViewController
let goodbyeVC = sb.instantiateViewControllerWithIdentifier("GoodbyeVC") as! GoodbyeViewController
switch shortcutItemType {
case .Hello:
rootViewController.presentViewController(helloVC, animated: true, completion: nil)
break
case .Goodbye:
rootViewController.presentViewController(goodbyeVC, animated: true, completion: nil)
break
}
}
}
इस कोड के साथ शॉर्टकट केवल प्रारंभिक दृश्य नियंत्रक करने के लिए और नहीं
helloVC
और
goodbyeVC
नियंत्रकों जो अलग टैब में हैं करने के लिए आवेदन खोलने
।
मुझे लगता है कि यह ViewControllers
है जिसे मैं लोड करने की कोशिश कर रहा हूं UINavigationController
के साथ-साथ UITabBarController
के भीतर एम्बेड किया गया है।
मैं presentViewController
कैसे UITabBarController
और UINavigationController
के भीतर एम्बेड किया जा सकता हूं?
अद्यतन
मैं अनिश्चित हूं यदि निम्न काम करता है मैं एटीएम मेरे साथ एक iPhone 6S नहीं मिला है के रूप में। लेकिन मैंने कोड को निम्नलिखित में बदल दिया है, उम्मीद है कि यह 3 डी टच एक्शन होने पर चयनित टैब इंडेक्स लोड करेगा। वहां से इसे एक सेग्यू करने के लिए व्यू कंट्रोलर को अधिसूचना पोस्ट करनी चाहिए।
private func handleShortcutItem(shortcutItem: UIApplicationShortcutItem) {
if let rootViewController = window?.rootViewController, let shortcutItemType = ShortcutItemType(shortcutItem: shortcutItem) {
let tababarController = rootViewController as! UITabBarController
switch shortcutItemType {
case .Hello:
tababarController.selectedIndex = 1
NSNotificationCenter.defaultCenter().postNotificationName("performsegueHello", object: nil)
break
case .Goodbye:
tababarController.selectedIndex = 4
NSNotificationCenter.defaultCenter().postNotificationName("performsegueGoodbye", object: nil)
break
}
}
}
आप जांच की है कि rootViewController.presentViewController (helloVC, एनिमेटेड: सच है, पूरा होने: शून्य) या rootViewController.presentViewController (goodbyeVC, एनिमेटेड: सच है, पूरा होने: शून्य) कहा जाता हो रही है? – beyowulf
क्या आपने 'कोऑर्डिनेटर' पैटर्न के रूप में संदर्भित किया है? यह एक मोबाइल ऐप के भीतर नेविगेशन encapsulating का एक उपयोगी तरीका है। http://iamsim.me/the-coordinator-pattern/ –