2014-10-09 25 views
6

Tôi có một bộ điều khiển xem tab trong đó có một nút như vậy và khi nó được ép một phương thức xuất hiện:Đẩy một bộ điều khiển chuyển hướng sau khi một bộ điều khiển xem phương thức được trình bày

PostViewController *post = [[PostViewController alloc] init]; 

// [self.navigationController pushViewController:post animated:YES]; 

// Presentation 
[self presentViewController:post animated:YES completion:nil]; 

Khi phương thức được thực hiện tôi muốn loại bỏ nó và đẩy một bộ điều khiển chế độ xem mới như vậy:

ProfilesViewController *profile = [[ProfilesViewController alloc] init]; 
[self.navigationController pushViewController:profile animated:YES]; 

Nhưng tôi không thể làm điều đó trong bài vc như một phương thức. Làm thế nào để tôi làm điều này?

+0

Tại sao bạn cần trình bày điều gì đó và loại bỏ nó trước khi xuất hiện? – EridB

+0

Tôi không làm điều đó – cdub

Trả lời

7

Bạn có thể thử sử dụng completionBlock.

CompletionBlock được gọi khi presentViewController được thực hiện.

PostViewController *post = [[PostViewController alloc] init]; 
[con presentViewController:post animated:YES completion:^{ 
    ProfilesViewController *profile = [[ProfilesViewController alloc] init]; 
    [self.navigationController pushViewController:profile animated:YES]; 
}]; 

Thông tin thêm về presentViewController:animated:completion:Apple Doc

hoàn: Khối thực hiện sau khi kết thúc bài thuyết trình. Khối này không có giá trị trả về và không có tham số. Bạn có thể chỉ định nil cho tham số này.

+0

Được rồi để nó đẩy nó đằng sau phương thức? – cdub

+0

Nó đẩy vào ngăn điều hướngController. – thedjnivek

+1

Nếu bạn muốn loại bỏ phương thức của mình trước đây, bạn có thể thêm 'dismissViewControllerAnimated: completion:' bằng cách sử dụng completionBlock quá – thedjnivek

1

Liều bộ điều khiển chế độ xem tab được nhúng trong UINavigationController? Nếu bạn không có, bạn tất nhiên không thể sử dụng self.navigationController.

+0

Nó nhúng một – cdub

Các vấn đề liên quan