मेरा दृष्टिकोण 2 प्रकार की प्रस्तुति में से प्रत्येक के लिए विभिन्न UIViewController उप-वर्गों का उपयोग/निर्माण करना होगा। अक्सर वे एक आम सुपरक्लास साझा कर सकते हैं। यहां एक उदाहरण दिया गया है:
@interface CMDetailsViewController : UIViewController
@end
@interface CMDetailsSinglePageViewController : CMDetailsViewController
@end
@interface CMDetailsPopoverViewController : CMDetailsViewController
@end
इनमें से प्रत्येक 2 कक्षाएं आपके बेस क्लास में परिभाषित कुछ व्यवहारों को अनुकूलित कर सकती हैं। आपके मामले में यह प्रस्तुति तर्क होगा, जो मुझे लगता है कि उपस्थिति विधियों में से एक में स्थित है (जैसे -(void)viewWillAppear:(BOOL)animated
या वैकल्पिक) या -(void)viewDidLoad
।
आप निश्चित रूप से जिस तरह से आप दृश्य नियंत्रक प्रस्तुत कर रहे हैं जानते हैं: मान लें कि का उपयोग कर एक UINavigationController
(iPhone पर) या UIPopoverController
(iPad पर), तो आप तय कर सकते हैं जो इन 2 उपवर्गों में से एक बनाने के लिए।
सामान्य रूप से जब मैं एक सार्वभौमिक आईओएस एप्लिकेशन पर काम करता हूं तो मेरा डिफ़ॉल्ट दृष्टिकोण भी होगा। सिस्टम आपको प्रत्येक प्लेटफ़ॉर्म के लिए 2 अलग-अलग UIApplicationDelegates
को परिभाषित करने देता है, जिसका अर्थ है कि आप उचित UIViewControllers
का उपयोग कर सकते हैं, बिना किसी डिवाइस के ऐप लॉन्च किए गए डिवाइस की जांच के लिए।
स्रोत
2013-11-20 12:45:03
मेरे पास एक ही प्रश्न है, लेकिन ऐसा लगता है कि आईओएस 5.0 के रूप में ऐसा करने का कोई विश्वसनीय तरीका नहीं है। तो मेरा कामकाज नियंत्रक के अंदर एक BOOL प्रॉपर्टी 'popoverMode' जोड़ना है और जब भी मैं उस नियंत्रक का उपयोग किसी पॉपओवर के अंदर करता हूं तो इसे सत्य पर सेट करना है। – adib