2012-03-14 63 views
5

Tôi có một ứng dụng với một số bộ điều khiển xem được điều khiển từ bộ điều khiển thanh tab. Từ một trong các bộ điều khiển xem mà tôi muốn (khi nhấp vào nút), hãy chuyển sang một bộ điều khiển chế độ xem khác và giữ lại thanh tab ở cuối phần được tách ra để xem.Làm cách nào trong bộ điều khiển thanh tab để tôi phân biệt giữa bộ điều khiển chế độ xem với bộ điều khiển chế độ xem khác và giữ lại thanh tab?

Tôi đã sử dụng

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ 
    if ([segue.identifier isEqualToString:@"newView"]){ 
     UIViewController *controller =segue.destinationViewController; 
     controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
     [self presentModalViewController:controller animated:YES]; 
    } 
} 

này hoạt động tốt, ngoại trừ các thanh tab là mất tích từ segued để xem (một placeholder cho thấy cho nó trong kịch bản, nhưng nó không hiển thị khi ứng dụng chạy) tôi cũng đã cố gắng thay thế

[self presentModalViewController:controller animated:YES]; 

với

[self presentViewController:controller animated:YES completion:nil]; 

nhưng điều đó cũng không hiệu quả.

Một chút gỡ lỗi cho thấy rằng đối với bộ điều khiển xem được phân đoạn, thuộc tính tabBarController được đặt thành không.

Có cách nào để giữ lại thanh tab trong bộ điều khiển phân tách để xem không?

Trả lời

1

Từ lời giải thích của bạn, tôi không nghĩ bạn muốn một bộ điều khiển phương thức. Phương thức được sử dụng để phủ, làm cho thanh tab của bạn vô dụng. Từ bảng phân cảnh của bạn, hãy chọn phân đoạn của bạn và chọn đẩy, không phải phương thức.

enter image description here

Đẩy vs Modal (Lưu ý thanh tab):

enter image description here enter image description here

+0

Tôi đang sử dụng Đẩy không Modal. Tabbar được hiển thị trong bảng phân cảnh, nhưng không thực sự xuất hiện khi ứng dụng đang chạy – John

+0

Để bắt đầu phân đoạn từ mã sử dụng '[self performSegueWithIdentifier: @" theSegueIdentifier "sender: selfOrSomeObject]' là một phương thức 'UIViewController'. Dòng này 'controller.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; [tự hiện tạiModalViewController: điều khiển hoạt hình: YES]; 'được sử dụng cho ** chuyển đổi ** phương thức không được đẩy. Xóa dòng này. – Gobot

+1

Cũng từ tài liệu của Apple cho hiện tạiModalViewController: hoạt hình ... "Trên các thiết bị iPhone và iPod touch, chế độ xem của modalViewController luôn hiển thị toàn màn hình. Trên iPad, bản trình bày tùy thuộc vào giá trị trong thuộc tính modalPresentationStyle. – Gobot

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