/ नेविगेशन कंट्रोलर के बिना / अधिसूचना कार्रवाई खुले दृश्य

नेविगेशन कंट्रोलर के बिना अधिसूचना कार्रवाई खुला दृश्य - आईओएस, उद्देश्य-सी, स्विफ्ट, uiviewcontroller, uinavigationcontroller

मैं एक ऐप कर रहा हूं जो एक पुश नोटिफिकेशन से डिटेल व्यू खोलता है। मेरे AppDelegate में मैं दृश्य खोल रहा हूं, लेकिन दृश्य में नेविगेशन नियंत्रक नहीं है।

तब मुझे लगता है कि मेरा समाधान विधि का उपयोग है instantiateViewControllerWithIdentifier नेविगेशन नियंत्रक को संभालने के लिए, मुझे यकीन नहीं है कि यह समाधान है, लेकिन यहां शीर्षक का सवाल है ...

मेरी कक्षा SlideNavigationController उद्देश्य-सी है, और जब मैं विधि का उपयोग करता हूं

let rootVC = UIStoryboard(name: "Main", bundle: nil).
instantiateViewControllerWithIdentifier("SlideNavigationController") as! SlideNavigationController

मुझे त्रुटि मिलती है:

चेतावनी: किसी भी उद्देश्य-सी कक्षा की जानकारी लोड नहीं कर सका। इससे उपलब्ध प्रकार की जानकारी की गुणवत्ता में काफी कमी आएगी।

कोई उपाय? मेरी अंग्रेजी के लिए क्षमा करें, संपादन का स्वागत है! धन्यवाद

मेरे UIController के साथ समस्या हल हो गई है। यहाँ मेरा कोड है:

           let rootViewController = self.window!.rootViewController as! UINavigationController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let targerView = mainStoryboard.instantiateViewControllerWithIdentifier("view_place_detail") as! VCPlaceDetailTour
targerView.placeId = aps as String
rootViewController.pushViewController(targerView, animated: false)

उत्तर:

जवाब के लिए 2 № 1

आप इस कोड के साथ कर सकते हैं।

let rootViewController = self.window!.rootViewController as! UINavigationController
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let targerView = mainStoryboard.instantiateViewControllerWithIdentifier("view Identifier") as! PromotionDetailsVC
rootViewController.pushViewController(targerView, animated: false)

उम्मीद है इससे आपको मदद मिलेगी।


उत्तर № 2 के लिए 1

आप प्रोग्रामेटिक रूप से एक नेविगेशन बना सकते हैंनियंत्रक और वांछित दृश्य नियंत्रक को अपने रूटव्यू के रूप में सेट करें।

उदाहरण:

let rootVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("SlideNavigationController") as! SlideNavigationController
let window = UIApplication.sharedApplication().keyWindow
window.rootViewController = rootVC

इस लिंक में भी समान है: एप्लाइड में प्रारंभिक व्यू-कंट्रौलर सेट करें - स्विफ्ट


उत्तर № 3 के लिए 1

स्विफ्ट प्रोजेक्ट में ऑब्जेक्टिव c कंट्रोलर्स का उपयोग करने के लिए आपको एक ब्रिजिंग हेडर बनाना होगा।

ब्रिजिंग हेडर बनाने की जानकारी के लिए नीचे दिए गए लिंक का पालन करें।

Bridging-Header.h का मार्ग कैसे खोजें - Swift, Xcode

उसके बाद आपको ब्रिजिंग हेडर फ़ाइल में नियंत्रकों की .h फ़ाइलों को आयात करना होगा।

अब आप आसानी से स्विफ्ट प्रोजेक्ट में अपने उद्देश्य सी व्यू कंट्रोलर का उपयोग कर सकते हैं