2012-04-05 35 views
12

Trong bảng phân cảnh của tôi, tôi có một cái nhìn như một màn hình giật gân. Trong quan điểm này, tôi đã có một nút như "Mở ứng dụng" đang mở chế độ xem trình đơn với phân đoạn phương thức. Nhưng tôi cũng muốn màn hình để thực hiện segue tự động, như sau 2 giây xem xuất hiện.Làm thế nào để thực hiện Segue với sự chậm trễ

Một số mã ở đây:

- (void)viewDidAppear:(BOOL)animated 
{ 
    [self performSegueWithIdentifier:@"splashScreenSegue" sender:self]; 
} 

Như bạn thấy đấy, tôi đã sử dụng performSegueWithIdentifier nhưng nó thực hiện ngay lập tức. Có phương pháp nào để trì hoãn?

Xin cảm ơn trước.

Trả lời

25

Bạn có thể sử dụng GCD của dispatch_after để thực thi mã segue của bạn 2 giây sau khi xem xuất hiện, e.x:

- (void)viewDidAppear:(BOOL)animated 
{ 
    [super viewDidAppear:animated]; 

    double delayInSeconds = 2.0; 
    dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 
    dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
     [self performSegueWithIdentifier:@"splashScreenSegue" sender:self]; 
    }); 
} 

Ngoài ra, hãy chắc chắn rằng bạn nhớ để gọi việc thực hiện siêu khi trọng phương pháp vòng đời UIViewController của.

+0

hmm rất dễ, huh? không có gì ngạc nhiên ^^ mã này đã gây nhầm lẫn cho tôi: [self performSelector: @selector (showSplash) withObject: nil afterDelay: SPLASH_HIDE_DELAY]; Tôi tự hỏi rằng nếu có một cách như nhau cho segues. cảm ơn. – kubilay

5

Tôi nghĩ rằng có một cách tiếp cận tốt hơn cho phép bộ điều khiển tự xử lý các vấn đề gửi đi. Bạn có thể đạt được nó như thế này:
đầu tiên tạo ra một phương pháp như thế này mà sau này bạn sẽ sử dụng selector của nó

- (void)showAnotherViewController{ 
    [self performSegueWithIdentifier:@"yourSegueToAnotherViewController" sender:self]; 
} 

Sau đó, khi bạn muốn hiển thị khác sử dụng xem điều khiển dòng mã này bên trong bộ điều khiển xem hiện tại của bạn:

[self performSelector:@selector(showAnotherViewController) withObject:nil afterDelay:yourDelayInSeconds]; 
Các vấn đề liên quan