2012-03-19 10 views
5

मैं एक UINavigationController के अंदर लोड किए गए कई UITableViews के लिए पृष्ठभूमि सेट करने का प्रयास कर रहा हूं। मैं आईओएस 5 में उपस्थित उपस्थिति प्रॉक्सी का उपयोग कर रहा हूं लेकिन यह काम नहीं कर रहा है कि मैं इसकी अपेक्षा कैसे कर रहा हूं।iOS5 UIAppearance के साथ UITableView उपस्थिति सही ढंग से काम नहीं कर रही है?

ऐप UISavitViewController का उपयोग करता है, जिसमें मास्टर व्यू UINavigationController होता है। इसके अंदर, मेरे पास एक UITableViewController उपclass है जिसे PBMasterTableViewController कहा जाता है। मेरे AppDelegate में मैं निम्नलिखित है:

UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease]; 
    [[UITableView appearanceWhenContainedIn:[PBMasterTableViewController_Ipad class], nil] setBackgroundView:bgView]; 

यह ठीक काम कर रहा है, और विभाजित दृश्य में मेरी मुख्य मेनू पृष्ठभूमि है कि मैं चाहता हूँ है।

इस मुख्य मेनू से, मैं 3 अन्य UITableViewController sublasses जिन्हें प्रासंगिक पंक्तियों का चयन करते समय एनएवी नियंत्रक पर धकेल दिया जाता है। हालांकि उपस्थिति प्रॉक्सी का उपयोग करके मुझे इन तालिकाओं की पृष्ठभूमि नहीं मिल सकती है। मैं निम्नलिखित कोशिश कर रहा हूँ:

UIImageView *bgView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"menuBg.png"]] autorelease]; 
    [[UITableView appearanceWhenContainedIn:[PBTwitterTableViewController class], nil] setBackgroundView:bgView]; 

यह सही है कि काम करता है पहले से पता चला कोड के नीचे (हालांकि छवि दृश्य निर्माण की पुनरावृत्ति के बिना) AppDelegate में भी है बल्कि यह तो केवल कुछ नहीं करता है! जब मैं नेविगेशन नियंत्रक पर PBTwitterTableViewController का एक उदाहरण धक्का देता हूं, तो मुझे पृष्ठभूमि परिवर्तन के बिना मानक तालिका दृश्य मिलता है।

मुझे पता है कि मैं बस तालिका दृश्य पृष्ठभूमि में पृष्ठभूमि दृश्यों को बदल सकता हूं, हालांकि मैं नहीं चाहता कि मेनू पृष्ठभूमि में दिखाए जाने पर दृश्यवृत्तव्यू नियंत्रक पॉपओवर में दिखाया गया हो, इसलिए मैं उपयोग करने की कोशिश कर रहा हूं उपस्थिति जबकंटनइन:

मैं यूआईएसप्लिट व्यू कंट्रोलर में निहित होने के लिए उपस्थिति को बस सेट नहीं करना चाहता, क्योंकि 2 उदाहरणों में मेरे पास UITableView को विस्तार खंड में लोड किया जा रहा है, इसलिए यह उन लोगों की उपस्थिति को बदल देगा मुझे नहीं चाहिए।

क्या उपस्थिति प्रॉक्सी के बिना ऐसा करने का कोई और तरीका है जो अभी भी पॉपओवर में होने पर पृष्ठभूमि को बदलने की अनुमति देगा, या प्रॉक्सी के साथ यह काम करने का कोई तरीका है, या मैं बस गायब हूं कुछ मूर्खतापूर्ण?

धन्यवाद

संपादित करें:

मैं सिर्फ UINavigationController का एक उपवर्ग बनाने की कोशिश की है और [[UITableView appearanceWhenContainedIn:[PBMenuNavigationController class], nil] setBackgroundView:bgView]; जो है फिर मुख्य मेनू के लिए ठीक काम कर रहा उपयोग करने की कोशिश, लेकिन किसी अन्य UITableView के लिए नहीं ढेर पर धकेल दिया , इसलिए मैं वास्तव में अब स्टम्प्ड हूँ :(

उत्तर

1

ठीक यह छाँटे गए। बस प्रत्येक दृश्य के अंदर यह कर और जाँच कि माता-पिता नियंत्रक कुछ है कि मैं नहीं चाहता नहीं है। वैसे भी धन्यवाद

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