2012-03-23 16 views
6

मेरे ऐप के उपयोग के दौरान, उपयोगकर्ता पृष्ठभूमि संगीत को शुरू, बंद, आगे बढ़ाने में सक्षम होना चाहिए। (कई UIViewControllers भर में)। इसके लिए, मैंने अपना म्यूजिकप्लेयर एक सिंगलटन बनाया (NSObject)। यदि मैं अपने लिए प्रत्येक दृश्य में नियंत्रण बनाता हूं तो यह काम करता है, लेकिन जो मैं चाहता हूं वह मूल रूप से एक दृश्य है जो संगीत प्लेयर वर्ग को संभालता है और हर समय प्रस्तुत करता है। उपयोगकर्ता को बाईं ओर या दाईं ओर स्वाइप करके दृश्य को "छुपाएं" और "दिखाएं" भी सक्षम होना चाहिए। तो अगर यह छिपा हुआ है और मैं अपना विचार बदलता हूं नियंत्रक इसे नए दृश्य नियंत्रक में भी छुपाया जाना चाहिए और संगीत को बाधित नहीं किया जाना चाहिए।UIViewController एक सिंगलटन बनाओ?

इस तक पहुंचने का सबसे अच्छा तरीका क्या है?

धन्यवाद

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

खैर ... मैं अपने घर को देखने के नियंत्रक में यह एक कोशिश की और यह काम करता है:

UIView * playerView = [[UIView alloc] initWithFrame:CGRectMake(0, 300, self.view.bounds.size.width, 44)]; 
playerView.backgroundColor = [UIColor redColor]; 

[[[[UIApplication sharedApplication] delegate] window] addSubview:playerView]; 

लेकिन:

है एप्लिकेशनडिलेगेट में ऐसा करने का कोई तरीका है?

उत्तर

6

यदि आपका सिंगलटन म्यूजिकप्लेयर संगीत चला रहा है, तो दृश्य में परिवर्तन होने पर इसे बाधित नहीं किया जाना चाहिए। और प्रत्येक दृश्य नियंत्रक के लिए संगीत नियंत्रण बनाने के बजाय, आप संगीत नियंत्रण दृश्य को विंडो के सबव्यूव के रूप में जोड़ सकते हैं और यह सुनिश्चित कर सकते हैं कि यह बाकी सब कुछ के ऊपर रहता है।

अद्यतन: आपके आवेदन प्रतिनिधि में, आपको आमतौर मुख्य दृश्य (यानी applicationDidFinishLaunching विधि) स्थापित करने के लिए कुछ कोड है। मुझे लगता है कि आपके पास प्राथमिक नेविगेशन या टैब नियंत्रक है जिसमें आप सबकुछ करते हैं। तो विंडो में अपना दृश्य जोड़ने के बाद, अपने संगीत प्लेयर नियंत्रक दृश्य बनाएं और जोड़ें और इसे विंडो के सबव्यूव के रूप में जोड़ें। यह तब तक शीर्ष पर रहेगा जब तक आप खिड़की पर अन्य दृश्य नहीं जोड़ते हैं (यदि आप करते हैं, तो आपको संगीत नियंत्रण को शीर्ष पर वापस ले जाने की आवश्यकता है)।

मैं एक सिंगलटन म्यूजिकप्लेयर कंट्रोलर व्यू कंट्रोलर का उपयोग करूंगा जो संगीत प्लेयर नियंत्रण दृश्य का मालिक है। इस तरह, अन्य दृश्य नियंत्रक आसानी से नियंत्रण दिखा सकते हैं या छुपा सकते हैं।

+0

संगीत बाधित नहीं होता है। यह हिस्सा काम करता है! क्या आप अपना उत्तर संपादित कर सकते हैं और अपने उत्तर के दूसरे भाग पर विचार करके विस्तार से जा सकते हैं? बहुत बहुत धन्यवाद! – DAS

+0

मैं दृश्य सब कुछ के शीर्ष पर कैसे रह सकता हूं? यह दिखाई नहीं दे रहा है? प्रश्न अपडेट किया गया। – DAS

+0

धन्यवाद, कोशिश करने के लिए अच्छा लगता है। लेकिन मैं सिंगलटन क्लास में एक दृश्य कैसे जोड़ सकता हूं या सिंगलटन व्यू कंट्रोलर कैसे बना सकता हूं? – DAS

0

यदि आप एक कंटेनर व्यू कंट्रोलर (जैसे UINavigationController) का उपयोग करते हैं, तो आपके पास एक दूसरे के बीच स्विच करने वाले सभी व्यू कंट्रोलर हैं, और कंटेनर के शीर्ष पर आप अपने म्यूजिकप्लेयर नियंत्रण जोड़ सकते हैं (इसके लिए सबसे आसान तरीका होगा नेविगेशन नियंत्रक के समान माता-पिता), इस तरह यह केवल एक बार बनाया गया है और यह इस पर निर्भर नहीं करता कि इसके अंतर्गत कौन से विचार प्रदर्शित किए गए हैं।

0

आप नहीं कर सकते हैं: How to add button to UINavigationController

"। UIViewController UINavigationController पर नेविगेशन नियंत्रक शीर्ष viewVontroller, जो अपने आप नहीं की नेविगेशन आइटम प्रदर्शित करता है नहीं नहीं पर UIbarButtonItem जोड़ें।"