2014-10-06 17 views
6

Tất cả,Cách ẩn masterView cho UISplitViewcontroller trong IOS8

Tôi gặp sự cố với UISplitViewcontroller mới trong IOS8 dành cho iPad. Tôi có một UITableView trong storyboard trong detailViewcontroller và khi nhấp vào ô, tôi nên đi đến một khung nhìn khác gọi là "detailinfo". Tôi hiện đang sử dụng phân đoạn "hiển thị".

Tuy nhiên, phân đoạn hiện tại chỉ cần đẩy vào phần bên phải. Tôi muốn nó hiển thị toàn màn hình, nhưng tôi không biết làm thế nào để làm cho nó, tôi đã thử bằng cách sử dụng thuộc tính preferDisplayMode của splitViewController, kết quả là nó chỉ ẩn chế độ xem chính nhưng không thay đổi kích thước của detailView. Tôi không muốn sử dụng hiện tại như phương thức.

cách hiện tại tôi đang làm là

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if([[segue identifier]isEqualToString:@"showStudentDetail"]){ 

     if(self.traitCollection.horizontalSizeClass != UIUserInterfaceSizeClassCompact){ 
      UISplitViewController *splitViewController = (UISplitViewController *)self.navigationController.parentViewController; 
      splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden; 
     } 

    } 
} 

và trong viewDidAppear, sử dụng

- (void)viewDidAppear:(BOOL)animated { 

    if(self.traitCollection.horizontalSizeClass != UIUserInterfaceSizeClassCompact){ 
     UISplitViewController *splitViewController = (UISplitViewController *)self.navigationController.parentViewController; 
     splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModeAutomatic; 
    } 
} 

này sẽ làm việc, nhưng masterViewController sẽ "nhảy ra ngoài" trong đó có một hiệu ứng hình ảnh rất xấu. Hy vọng có thể nhận được trợ giúp, cảm ơn bạn

Trả lời

4

UISplitViewController là bộ điều khiển chế độ xem phức tạp bao gồm hai bộ điều khiển chế độ xem con. Vì vậy, khi bạn sử dụng một số segue được thêm vào bất kỳ bộ điều khiển xem con bạn yêu cầu bộ điều khiển xem con để thực hiện segue. Và bộ điều khiển xem con này có một phần kiểm soát cửa sổ đang hoạt động.

Trong trường hợp của bạn, bạn cần yêu cầu trình điều khiển chế độ xem chia tách thực hiện phân đoạn. Vì vậy, bạn nên thêm segue vào bộ điều khiển chia tách của bạn để xử lý cửa sổ đang hoạt động. Bằng cách này, bạn sẽ có tùy chọn toàn màn hình.

CẬP NHẬT

Nếu bạn không muốn sử dụng hiện nay như phương thức và muốn tránh "Nhảy ra" hiệu ứng bạn có thể ẩn thạc sĩ sử dụng hình ảnh động

UISplitViewController *splitViewController = [self splitViewController]; 
[UIView animateWithDuration:0.25 animations:^{ 
    splitViewController.preferredDisplayMode = UISplitViewControllerDisplayModePrimaryHidden; 
} completion:^(BOOL finished) { 
    [splitViewController showDetailViewController:vc sender:nil]; 
}]; 
+0

U r Đúng vậy, tôi cần phải hỏi các splitviewcontroller để thực hiện segue –

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