मैं ट्वीटी ऐप की तरह एक यूआई संरचित को लागू करने की कोशिश कर रहा हूं , जो इस प्रकार व्यवहार करता है: शीर्ष-स्तरीय दृश्य नियंत्रक एक नेविगेशन नियंत्रक लगता है, जिसका मूल दृश्य "खाता" तालिका दृश्य है। यदि आप किसी भी खाते पर क्लिक करते हैं, तो यह दूसरे स्तर पर जाता है, जिसमें नीचे की तरफ एक टैब बार होता है। प्रत्येक टैब आइटम एक अलग सूची दिखाता है और आपको आगे ड्रिल करने देता है (बाद के स्तर टैब बार नहीं दिखाते हैं)।
तो, ऐसा लगता है कि कार्यान्वयन पदानुक्रम है:
UINavigationController
- खाते :
UITableViewController
UITabBarController
- ट्वीट :
UITableViewController
- एक ट्वीट / उपयोगकर्ता / आदि का विवरण देखें
- उत्तर :
UITableViewController
- ...
- ट्वीट :
- खाते :
यह काम करने के लिए लगता है [^ 1], लेकिन -pushViewController:animated:
(जोर जोड़ा) के लिए एसडीके प्रलेखन के अनुसार असमर्थित प्रतीत होता है :
ViewController : दृश्य नियंत्रक कि ढेर पर धकेल दिया जाता है। यह टैब बार नियंत्रक का उदाहरण नहीं हो सकता।
मैं निजी APIs और पसंद से बचना चाहूंगा, लेकिन मुझे यकीन नहीं है कि जब यह ठीक काम करता है तब भी यह उपयोग स्पष्ट रूप से निषिद्ध है। किसी को कारण पता है?
मैंने टैब कंट्रोलर को मुख्य नियंत्रक के रूप में रखने के बारे में सोचा है, प्रत्येक टैब के साथ अलग नेविगेशन नियंत्रक होते हैं। इसके साथ समस्या यह है कि प्रत्येक नौसेना नियंत्रक को एक रूट व्यू कंट्रोलर (यानी ट्वीटी में "लेखा" तालिका ) को साझा करने की आवश्यकता है - यह काम नहीं करता है: तालिका नियंत्रक को एक दूसरे नौसेना नियंत्रक पर धकेलने के लिए इसे हटाने लगता है पहले से। एक अलग खाते का चयन करते समय सभी किताबों को रखने का उल्लेख नहीं करना शायद एक दर्द होगा।
मुझे यह सही तरीका कैसे लागू करना चाहिए?
[^ 1]: टैब बार नियंत्रक की जरूरत है ताकि subclassed जा सकता है कि चयनित टैब के मार्गदर्शक आइटम, और व्यक्तिगत टैब की तालिका नियंत्रक के लिए अपने-अपने विवरण दृश्य पुश करने के लिए जरूरत के साथ सिंक में उस स्तर रहता है पर टैब बार नियंत्रक के नेविगेशन आइटम self.tabBarController.navigationController
के बजाय self.navigationController
।