2012-04-18 29 views
6

tôi có ba viewControllerIOS: sa thải hai viewController

Thứ nhất, thứ hai và thứ ba

từ thứ hai để mở thứ ba tôi sử dụng

Third *third = [[Third alloc]initWithNibName:@"Third" bundle:nil]; 
[self presentModalViewController:third animated:YES]; 
[third release]; 

Bây giờ tôi muốn trở về từ thứ ba đến thứ nhất; sau đó tôi thiết lập trong viewDidAppear trong thứ hai mã này:

[self dismissModalViewControllerAnimated:NO]; 

nhưng trong 1 giây tôi thấy thứ hai và tôi không muốn xem nó ... làm thế nào tôi có thể làm gì?

+1

cách xem thứ hai được thêm vào chế độ xem đầu tiên? –

Trả lời

15

Bạn cần loại bỏ bộ điều khiển xem thứ ba trước và sau đó là Chế độ xem thứ hai. Làm các mã sau đây khi bạn muốn đi bộ điều khiển xem đầu tiên.

-(void)goToFirstView{ 
     UIViewController *vc = [self parentViewController]; 
    //  UIViewController *vc = [self presentingViewController]; //ios 5 or later 
     [self dismissModalViewControllerAnimated:NO]; 
     [vc dismissModalViewControllerAnimated:YES]; 
} 
4

Chế độ xem phương thức thứ ba bị loại bỏ ở địa điểm đầu tiên như thế nào? Có lẽ bởi người dùng chạm vào nút 'Xong'? Nếu vậy, nó nằm trong trình xử lý cho nút mà bạn muốn loại bỏ cả hai.

Bạn có thể bỏ cả hai như:

[self dismissModalViewControllerAnimated: YES]; 
[self.presentingViewController dismissModalViewControllerAnimated: NO]; 
+0

Tôi nghĩ rằng các thông số ** hoạt hình ** phải là NO rồi YES, xem câu trả lời của rakeshNS – onmyway133

0

Điều này xảy ra coz viewDidAppear được gọi là mỗi lần trước khi xem xuất hiện càng sớm càng có vẻ như bạn bỏ qua nó và nó sẽ biến mất ..

tôi không nghĩ rằng những gì u đang cố gắng để làm có thể đạt được với modalViewControllers ... thay vì sử dụng một navigationController và tiếp tục thêm viewcontrollers của bạn vào ngăn xếp và khi bạn muốn goto bộ điều khiển xem đầu tiên chỉ cần gọi

[self.navigationController popToRootViewControllerAnimated:YES];  

EDIT:

chỉ nghĩ về nó này có thể đạt được bằng cách sử dụng đoàn .. bạn thực hiện thứ hai các đại biểu của ba và càng sớm bạn bỏ qua những thirdviecontroller gửi các đại biểu một message.In này gọi nhắn [self dismissModalViewControllerAnimated:NO];. và bạn đã hoàn thành .. (khá dễ dàng nếu bạn biết phái đoàn.)

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