कैसे घुमाने एक tabbar app में परिदृश्य को देखने

वोट
7

मैं एक tabbar आधारित एप्लिकेशन है।

मैं 2 दृश्य, चित्र में एक और इंटरफ़ेस बिल्डर में एक और विधा परिदृश्य में निर्माण।

अब, मैं आइपॉड अनुप्रयोग की तरह कुछ करना चाहते हैं। मैं लैंडस्केप दृश्य फुलस्क्रीन होने के लिए करना चाहते हैं, और tabbar और स्थिति बार छुपाने।

मैं इस के बुनियादी काम करने के लिए करते हैं:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                duration:(NSTimeInterval)duration { 
    if (self.landscape) {
        if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
        {
            self.view = self.portrait;
            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(360));
        }
        else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft)
        {
            self.view = self.landscape;
            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(-90));
        }
        else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
        {
            self.view = self.landscape;
            self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
        }
        else
        {
            self.view = self.portrait;
            self.view.transform =  CGAffineTransformMakeRotation(degreesToRadian(-180));
        }
    }
}

लेकिन सब गंदा काम करते हैं। लैंडस्केप दृश्य सही ढंग से क्षेत्र भर नहीं और नियंत्रण, गलत स्थानों में स्थित हैं ऐसे भिन्न के रूप में पहली desingned।

इसके अलावा, मैं अभी भी नहीं एक तरह से सब कुछ छिपाने के लिए मिला ...

10/02/2009 को 22:59
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


5 जवाब

वोट
5

एप्पल के "AlternateViews" नमूना कोड को देखो।

मूल विचार यह है कि आप सूचनाओं के साथ डिवाइस के भौतिक उन्मुखीकरण पता लगा सकते हैं, और फिर कोई नया दृश्य नियंत्रक "रीति" सक्रिय करने और पूर्ण स्क्रीन का अनुरोध किया है। आप होने shouldAutorotate ... हाँ सिर्फ एक ही उन्मुखीकरण के लिए लौटने के लिए, जब से तुम सूचनाओं के साथ मैन्युअल रूप से यह सब कर रहे हैं द्वारा इंटरफ़ेस रोटेशन को अक्षम करें। जब आप शारीरिक ओरिएंटेशन बदलने, अपने मॉडल दृश्य नियंत्रक या तो प्रस्तुत या खारिज किया जाता है।

30/11/2009 को 01:47
का स्रोत उपयोगकर्ता

वोट
1

वहाँ कोडर जो एक टैब बार आइटम (कोई स्थिति पट्टी, कोई टैब बार) एक लैंडस्केप दृश्य पूर्ण स्क्रीन करने के लिए उन्हें लेने के लिए और फिर वापस आ करना चाहते हैं का एक उचित संख्या होने लगते हैं।

मैं के बारे में है कि क्या यह वास्तव में एप्पल डेवलपर्स मंच पर संभव है एक जांच पोस्ट किया है, लेकिन अभी तक कोई जवाब नहीं था।

क्यों इस कठिन है? (क्षमा करें, एक नौसिखिया सवाल? ऐसा लगता है जैसे कुछ नहीं बल्कि स्पष्ट बातें कठिन नहीं होना चाहिए) कोई भी मैं अभी तक ऑनलाइन पाया है यह करने के लिए एक स्पष्ट उत्तर नहीं है।

15/11/2009 को 02:21
का स्रोत उपयोगकर्ता

वोट
1

जब मैं आइपॉड एप्लिकेशन को देखो, मुझे लगता है कि TabBarController दृश्य की जगह या किसी भी तरह से संशोधित नहीं है। मुझे लगता है कि TabBarController देख सकते हैं और coverflow दृश्य के बीच सिर्फ एक फीका संक्रमण है।

अगर मैं तुम्हें थे, मैं कोशिश करेगा (यकीन नहीं अगर यह काम कर सकते हैं) एक coverflow नियंत्रक के साथ, अपने दृश्य के साथ TabBarController के दृश्य के शीर्ष पर प्रदर्शित होता है। अगर अपने दृश्य autorotating से TabBarController रोका जा सके, लेकिन वह इस समय मैं अपने दृश्य बाहर फीका और coverflow दृश्य है, जो केवल परिदृश्य होगा में फीका होता।

मैं अगर स्थिति बार एक उचित व्यवहार होता है पता नहीं है, और मैं आप को हल करने के लिए विवरण का एक बहुत करते हैं, लेकिन किसी भी मामले मुझे लगता है कि यह एक अच्छा विचार है दो अलग-अलग नियंत्रकों के लिए किया जाएगा में, एक परिदृश्य में पता चला है, अन्य (tabBar) चित्र में।

आशा है कि आप में मदद मिलेगी।

14/11/2009 को 10:24
का स्रोत उपयोगकर्ता

वोट
1

ठीक है, यह जहाँ तक मैं काम करने के लिए इस डाल है:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                duration:(NSTimeInterval)duration {
    if (self.landscape) {
        if (toInterfaceOrientation == UIInterfaceOrientationPortrait)
        {
            self.view = self.portrait;
            //self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(360));
        }
        else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft)
        {
            self.view = self.landscape;
            //self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(-90));
        }
        else if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
        {
            self.view = self.landscape;
            //self.view.transform = CGAffineTransformMakeRotation(degreesToRadian(90));
        }
        else
        {
            self.view = self.portrait;
            //self.view.transform =  CGAffineTransformMakeRotation(degreesToRadian(-180));
        }
    }
}

अब, AppDelegate में:

- (void) didRotate:(NSNotification *)notification
{   
    UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
    [UIView beginAnimations:nil context:NULL];  

    if (orientation == UIDeviceOrientationLandscapeLeft || orientation == UIDeviceOrientationLandscapeRight)
    {
        [tabBarController.view setAlpha:0.0];
        [tabBarController.view removeFromSuperview];

        [[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; 
    } else {
        [tabBarController.view setAlpha:1.0];
        [[UIApplication sharedApplication] setStatusBarHidden:NO animated:NO];      
    }
    [UIView commitAnimations];  
}

लेकिन फिर कैसे वर्तमान दृश्य की स्थापना की और कैसे tabbar बहाल?

11/02/2009 को 21:23
का स्रोत उपयोगकर्ता

वोट
1

आप को फोन करके स्थिति पट्टी को छुपा सकते हैं

setStatusBarHidden:(BOOL)

एक UIApplication संदर्भ है, तो जैसे पर।

- (void)applicationDidFinishLaunching:(UIApplication *)application {

[application setStatusBarHidden:YES];

}

tabbar से छुटकारा पाने के लिए आपको अपने कोड और कॉल करने के लिए इंटरफ़ेस बिल्डर में एक संदर्भित आउटलेट कर सकते हैं

[myUITabBar removeFromSuperview];

यही कारण है कि काम हो सकता है, हालांकि मैं यह परीक्षण नहीं किया, अन्य प्रश्न के लिए के रूप में, मैं नहीं कर रहा हूँ 100%, इससे पहले कि समस्याओं घेरने की कोशिश नहीं हो रही है।

11/02/2009 को 13:20
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more