2012-04-05 20 views
21

पर धक्का नहीं दिया जा सकता है मेरे पास एक नेविगेशन नियंत्रक का उपयोग कर एक एक्सकोड आईपैड प्रोजेक्ट है। मैं नेविगेशन ढेर करने के लिए एक UISplitViewController पुश करने के लिए एक बटन पाने की कोशिश की है, लेकिन यह त्रुटि आई:आईओएस: UISplitViewController को UINavigationController

Split View Controllers cannot be pushed to a Navigation Controller

बाहर कर देता है UISplitViewController UINavigationController के साथ अच्छी तरह अदा नहीं करता है। हालांकि, इस बटन पर क्लिक होने पर मुझे अभी भी स्प्लिट व्यू कंट्रोलर दिखाना होगा। मैं यह कैसे करु? और, यह भी महत्वपूर्ण है कि मैं बैक बटन कैसे बना सकता हूं ताकि उपयोगकर्ता को नेविगेशन नियंत्रक में वापस किया जा सके?

उत्तर

28

एक SplitViewController प्रदर्शित करने के लिए आपको setRootViewController का उपयोग करने की आवश्यकता होगी। ऐसा इसलिए है क्योंकि एक SplitViewController रूट व्यू नियंत्रक होना चाहिए।

एप्पल के प्रलेखन से:

A split view controller must always be the root of any interface you create. In other words, you must always install the view from a UISplitViewController object as the root view of your application's window. The panes of your split-view interface may then contain navigation controllers, tab bar controllers, or any other type of view controller you need to implement your interface.

वापस पाने के लिए आप पहले पृष्ठ पर वापस जाने के लिए setRootViewController का उपयोग करना होगा। जब मैंने अपना आईफोन ऐप सार्वभौमिक रूपांतरित कर दिया, तो मैंने इस समस्या में भाग लिया, और आईपैड संस्करण के लिए आईफोन और setRootViewController के लिए एक नेविगेशन नियंत्रक का उपयोग कर समाप्त हो गया। यह एक बमर का थोड़ा सा है क्योंकि आप इसे without a bit of fudging अच्छी तरह से एनिमेट नहीं कर सकते हैं।

+0

मैं setRootViewController का उपयोग कैसे करूं? Google मुझे बताता है कि यह UIWindow की एक विधि है, लेकिन मैं यह नहीं समझ सकता कि UIWindow इंस्टेंस कहां मिलना है। –

+2

आपको इसे अपने ऐप प्रतिनिधि से संपत्ति के रूप में पकड़ने की आवश्यकता है, जैसे: MyAppDelegate * appDelegate = (MyAppDelegate *) [[UIAplplication sharedAplication] प्रतिनिधि]; और फिर [appDelegate.window setRootViewController: shareSelectViewController]; – glenstorey

+0

आपको बहुत बहुत धन्यवाद! –

संबंधित मुद्दे