2013-10-10 146 views
-2

我需要知道如何在5秒後從第一個視圖控制器移動到第二個視圖控制器。如何定義自動移動的時間,是通過導航控制器和通過哪種方法?5秒後從第一個視圖控制器移動到第二個

+0

你應該給[dispatch_after](https://developer.apple.com/library/ios/documentation/Performance /Reference/GCD_libdispatch_Ref/Reference/reference.html#//apple_ref/c/func/dispatch_after)嘗試並將navifationcontroller上的第二個viewcontroller推向 – CarlJ

回答

3

隨着performSelector

- (void)viewDidLoad{ 

    [self performSelector:@selector(loadingNextView) 
       withObject:nil afterDelay:5.0f]; 
} 

- (void)loadingNextView{ 

    myViewController = [[MyViewController alloc] init]; 
    [self.navigationController pushViewController:myViewController animated:YES]; 
} 

或用dispatch_aftermain_queue

dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 5.0f * NSEC_PER_SEC),    
       dispatch_get_current_queue(), ^{ 

    [self loadingNextView]; 
}); 
2

您需要定義一個計時器(或使用GCD/performSelector:)在延遲後觸發方法調用。然後在該方法中,您可以觸發視圖控制器更改(如何實現,取決於當前視圖控制器和下一個視圖控制器之間的關係,並且不受代碼執行延遲的影響)。

+0

謝謝,但是有沒有任何例子? – user2438318

+0

https://www.google.co.uk/search?q=nstimer+example – Wain

+0

只是看到所有其他答案stackoverflow像[這裏](http://stackoverflow.com/questions/920675/how-can -i-延遲-A-方法呼叫換1秒)。 – JFS

0

在main_queue上使用NSTimer或dispatch_after。

相關問題