2012-07-02 74 views
1

我已經建立一個登錄名和在登錄用戶後視圖寄存器視圖,以便successing我打電話這XIB文件定義爲tabbarcontroller後可以看到它的簡檔頁面中的TabBar控制器我已編碼像目前模態視圖控制器調用視圖會出現兩次?

-(void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName 
{ 
    if(nil != qName) 
    { 
     elementName = qName; 
    } 

    if ([elementName isEqualToString:@"ABC"]) 
    { 
     //some code 
    } 
    else if ([elementName isEqualToString:@"DEF"]) 
    { 
     //some code 
    } 
    else if ([elementName isEqualToString:@"GHI"]) 
    { 
     //some code 
    } 
    else if ([elementName isEqualToString:@"JKL"]) 
    { 
     //some code 
    } 
    else if ([elementName isEqualToString:@"end"]) 
    { 
     [activityIndicator stopAnimating]; 

     self.tabBarController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
     [self presentModalViewController:self.tabBarController animated:YES]; 
     [self.tabBarController release]; 
    } 
} 

標籤欄控制器。所以問題是,當用戶成功登錄的第一個視圖的TabBar控制器它的viewWillAppear方法調用兩次,我可以看到這樣的控制檯中的錯誤,如Using two-stage rotation animation is not supported when rotating more than one view controller or view controllers not the window delegate ,我也做了相同的代碼在註冊頁面,但它會崩潰在iOS 5.0它在iOS 4.0中工作。所以是否有任何錯誤在我上面的代碼中,我正在實施登錄和註冊頁面方法,如instagram,picyoupinterest應用程序。 PLZ幫助我我卡在這裏。

回答

0

原因是您使用的UITabBarController超出了它的預期用途。它只能用作根控制器,並且你需要類似於tabbar使用工具欄的東西。大約半年前,我遇到了一個確切問題。不幸的是,如果你這樣使用它,你也會遇到其他問題。

因爲UITabBarController類繼承自UIViewController類,所以標籤欄控制器具有可通過視圖屬性訪問的其自己的視圖。在部署選項卡欄界面時,必須將此視圖安裝爲窗口的根目錄。與其他視圖控制器不同,選項卡欄界面不應該被安裝爲另一個視圖控制器的子視圖。

與我替換代碼:

self.tabBarController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
    [[[UIApplication sharedApplication] keyWindow] setRootViewController:self.tabBarController]; 
    [self presentModalViewController:self.tabBarController animated:YES]; 
    self.tabBarController.selectedIndex = 0; 
+0

我用你的代碼仍然得到'viewWillAppear'調用兩次讓我在的iOS 5.0檢查崩潰問題。 –

+0

在IOS 5.0不工作在當前頁得到錯誤''main.m'#進口 INT主(INT的argc,字符* argv的[]){ NSAutoreleasePool *池= [[NSAutoreleasePool alloc] init]; int retVal = UIApplicationMain(argc,argv,nil,nil); [游泳池釋放]; return retVal; } '這是錯誤,並指向'int ratVal'方。 –

+0

檢查編輯的答案 –

相關問題