2011-05-01 13 views
5

प्रदर्शित करने से पहले दृश्य दिखाएं मुझे टैब आधारित ऐप प्रदर्शित करने से पहले एक दृश्य प्रदर्शित करने की आवश्यकता है और एक बार जब उपयोगकर्ता बटन को टैप करता है तो दृश्य दूर हो जाता है। कोई विचार?आपको UITabBar

उत्तर

2

यहां कुछ कोड है जो प्रक्रिया को प्रदर्शित करता है। आप इस कोड को चलाने के लिए ऐप प्रतिनिधि में पेस्ट कर सकते हैं। ध्यान दें, यह स्पेगेटी कोड है, लेकिन मैंने इसे इस तरह से किया ताकि आप एक ही स्थान पर सभी चरणों को देख सकें। आम तौर पर, आप इस कोड के हिस्सों को अपने स्वयं के व्यू कंट्रोलर और कक्षाओं में डाल देंगे।

यह अपर्याप्त है .. ध्यान दें कि यह लीक और सामान के लिए पूरी तरह से परीक्षण नहीं किया गया है .. इसका मतलब उदाहरण के लिए है।

@synthesize tabViewController; 


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 


    UIWindow *w = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen] bounds]];; 
    self.window = w; //property defined in the .h file 
    [w release]; 


    //create the tab bar controller 
    UITabBarController *tbc = [[UITabBarController alloc]init]; 
    self.tabViewController = tbc; 
    [w addSubview:tbc.view]; 

    //create the two tabs 
    NSMutableArray *a = [[NSMutableArray alloc]init]; 

    //create the first viewcontroller 
    UIViewController *vca = [[UIViewController alloc]init]; 
    vca.view.backgroundColor = [UIColor redColor]; 
    vca.title = @"View A"; 
    [a addObject:vca]; 
    [vca release]; 

    //and the second 
    UIViewController *vcb = [[UIViewController alloc]init]; 
    vcb.view.backgroundColor = [UIColor blueColor]; 
    vcb.title = @"View B"; 
    [a addObject:vcb]; 
    [vcb release]; 

    //assign the viewcontrollers to the tabcontroller 
    tbc.viewControllers=a; 

    //release the array now that its retained by the tabcontroller 
    [a release]; 
    [tbc release]; //tabbarcontroller is retained by our property 


    UIViewController *vcc = [[UIViewController alloc]init]; //this is the popup view 
    vcc.view.backgroundColor = [UIColor whiteColor]; 
    UIButton *b = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
    b.titleLabel.text = @"Click here"; 
    [b addTarget:self action:@selector(buttonDismiss:) forControlEvents:UIControlEventTouchUpInside]; //hook into the buttons event 
    b.frame = CGRectMake(10, 10, 300, 40); 
    [vcc.view addSubview:b]; //add it to the popup view 



    [tbc presentModalViewController:vcc animated:YES]; 

    [self.window makeKeyAndVisible]; 
    return YES; 
} 

-(void) buttonDismiss:(UIButton *)sender 
{ 
    [self.tabViewController dismissModalViewControllerAnimated:YES]; 

} 
+0

क्या मुझे वहां टैब के अंदर के विचारों को उदाहरण देने की आवश्यकता है (अपने कोड में viewA और viewB)? मेरे पास पहले से ही एक टैबबार के रूप में बनाया गया ऐप है और इसमें सभी विचार हैं। उपयोगकर्ता वास्तविक ऐप – irco

+0

देखता हूं, इससे पहले कि मैं वास्तव में देखता हूं कि अब आपका क्या मतलब है, मैं सिर्फ एक दृश्य प्रदर्शित करना चाहता हूं। बहुत बहुत धन्यवाद! – irco

0

एक UIViewController का उपयोग करें। टैब बार नियंत्रक के साथ एक मोडल दृश्य के रूप में नियंत्रक प्रस्तुत करें। इसके बाद दृश्य नियंत्रक को इसे छिपाने के लिए

+0

ठीक है ... मैं यह कहां कर सकता हूं? मैं इसका उदाहरण कहां बना सकता हूं? मैं इसे दिखाने के लिए कहां कहूं? और जब मैं प्रारंभिक दृश्य को खारिज करता हूं तो दिखाने के लिए मैं अन्य टैब के साथ नियमित टैब कहां कहूं? – irco

+0

@irco * आपके अन्य विचारों के शीर्ष पर * एक मोडल व्यू कंट्रोलर प्रदर्शित करता है। यह खुद को खारिज करने में सक्षम है, इसलिए आपको अपने प्रश्नों के अंतिम भाग के बारे में चिंता करने की आवश्यकता नहीं है। जहां तक ​​एक उदाहरण बनाने और इसे दिखाने के लिए, आप इसे अपने व्यू कंट्रोलर के 'viewDidAppear' विधि में कर सकते हैं। बस 'alloc' और 'init' एक नया वीसी और वर्तमान वीसी को एक नया दृश्य मोडर के रूप में प्रस्तुत करने के लिए बताएं। –

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