2014-01-06 117 views
2

第一次VC1到VC2 [self.navigationController pushViewController:mainView動畫:YES]工作正常。從VC2到VC3在ios7中不起作用。pushviewcontroller不工作在ios7

VC1-> VC2(工作正常)

- (IBAction)loginBtnAction:(id)sender 
{ 

    GVMainViewController *mainView; 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    { 
     mainView = [[GVMainViewController alloc] initWithNibName:@"GVMainViewController_iPhone" bundle:nil]; 
    } else 
    { 
     mainView = [[GVMainViewController alloc] initWithNibName:@"GVMainViewController_iPad" bundle:nil] ; 
    } 

    [self.navigationController pushViewController:mainView animated:YES]; 
} 

VC2-> VC3(不工作)

- (IBAction)doneButtonAction:(id)sender 
{ 
    [[FinishViewController getsharedInstance]updateProfileInfo]; 
    [self performSelector:@selector(moveTo) withObject:nil afterDelay:0.5]; 

} 

- (void)moveTo 
{ 
    GVMainViewController *mainView; 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    { 
     mainView = [[GVMainViewController alloc] initWithNibName:@"GVMainViewController_iPhone" bundle:nil]; 

    } else 
    { 
     mainView = [[GVMainViewController alloc] initWithNibName:@"GVMainViewController_iPad" bundle:nil] ; 
    } 

    [self.navigationController pushViewController:mainView animated:YES]; 
} 

,也得到一些日誌整理了意外狀態導航過渡。導航欄子視圖樹可能會損壞。在所有的iOS版本中,但在ios7中它並沒有推動視圖控制器。

請任何人告訴我清楚的iOS7和更低版本的解決方案。提前致謝。

+0

在iOS7中,您無法將新的視圖控制器推入導航堆棧,直到完成上一個動畫。 – holex

回答

4

mainView應該作爲performSelector啓動後臺線程在主線程上推送。

- (void)moveTo 
{ 
    GVMainViewController *mainView; 
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) 
    { 
     mainView = [[GVMainViewController alloc] initWithNibName:@"GVMainViewController_iPhone" bundle:nil]; 

    } 
    else 
    { 
     mainView = [[GVMainViewController alloc] initWithNibName:@"GVMainViewController_iPad" bundle:nil] ; 
    } 

    dispatch_async(dispatch_get_main_queue(), ^{ 
     [self.navigationController pushViewController:mainView animated:YES]; 
    }); 
} 
+0

Apple對'-performSelector:withObject:afterDelay:'有不同的看法:_This方法設置了一個計時器來執行**當前**線程的運行循環_...上的'aSelector'消息。 – holex

相關問題