2012-03-08 12 views
17

Soạn thảo ứng dụng iPad của tôi với SDK 5.1 (phiên bản phát hành) khiến UIPopoverController tự hiển thị bằng cách sử dụng "trang trình bày" mới từ bản trình bày bên trái. Điều này hoàn toàn phá vỡ trình bày popover của tôi, mà dựa trên có một tiêu đề phong cách "đen" và một chiều cao nhất định. Tôi đã thử đặt presentsWithGesture thành NO, nhưng điều đó dường như chỉ tắt cử chỉ vuốt và không dừng kiểu hiển thị.Soạn thảo với các lực lượng 5.1 SDK mới trình bày các cửa sổ bật lên của UIPopoverController "" - cách tắt?

Ứng dụng tương tự này, không được biên dịch lại, nhưng chạy trên iOS 5.1, sử dụng kiểu trình bày popover cũ. Vì vậy, tôi biết iOS 5.1 vẫn hỗ trợ phương pháp tương thích ngược. Làm cách nào tôi có thể chọn kích hoạt bản trình bày cũ của cửa sổ bật lên?

Điều này thực sự rất quan trọng đối với ứng dụng của tôi.

Nếu không, có cách nào để lấy tiêu đề kiểu "đen" trên cửa sổ mới không?


Mặc dù tôi có UISplitViewController trong ứng dụng của mình, nó không chịu trách nhiệm hiển thị cửa sổ bật lên. Thay vào đó, tôi đang sử dụng mã này:

[self.popoverController presentPopoverFromRect:ipadButtonMenu.frame 
              inView:self.view 
         permittedArrowDirections:UIPopoverArrowDirectionUp 
             animated:YES]; 

Câu hỏi này là một bài đăng chéo từ Diễn đàn nhà phát triển Apple here. Tôi hy vọng ai đó có câu trả lời.


Dự kiến ​​trình bày: enter image description here

Presentation sau khi biên dịch dưới iOS 5.1 SDK: enter image description here

+0

Đó là một số giao diện người dùng tốt đẹp hùng vĩ designin' người bạn của tôi! Bạn đã có cơ hội để làm sạch xây dựng của bạn và biên dịch lại từ đầu? Tôi sẽ gửi một radar, vì twitter dường như bị thổi phồng với cùng vấn đề mà bạn đang gặp phải. – CodaFi

+0

Có, làm sạch/xây dựng lại dường như không ảnh hưởng đến nó. Bất cứ ai cụ thể trên Twitter bạn đang thấy nói về nó? –

+0

Tóm tắt ngắn: https://mobile.twitter.com/nimaa/status/156521684512415746 – CodaFi

Trả lời

5

Sự thay đổi này dường như kém nghĩ ra. Chắc chắn mọi người, chúng tôi phá vỡ mọi thứ trong chế độ xem chi tiết sử dụng thao tác vuốt. Tuyệt vời!

Để trả lời câu hỏi 'mang lại màu đen' của bạn, nếu đó chỉ là câu hỏi về màu thanh điều hướng trên cùng, bạn có thể sử dụng proxy xuất hiện. Ví dụ:

[[UINavigationBar appearance] setTintColor:[UIColor blackColor]]; 

Proxy xuất hiện có thể được đặt rất cụ thể nếu cần thiết; nó có một mô hình container. Có một video WWDC rất hay trên đó.

Liên quan đến việc hoàn nguyên về hành vi cũ với trình biên dịch mới, thật lòng, tôi cũng muốn biết điều đó. Hành vi mới cũng phá vỡ các trang tính hành động trong chế độ xem chính; trước đây, khi chế độ xem chính được hiển thị trong cửa sổ bật lên, chúng sẽ làm điều đúng. Bây giờ, đó là một sự thất bại khẳng định.

+0

'setTintColor' có thể hoạt động như một phương sách cuối cùng - cảm ơn vì điều đó. Thật không may, chiều cao của cửa sổ bật lên ('contentSizeForViewInPopover') cũng khá quan trọng đối với ứng dụng này và dường như chúng đã hoàn toàn phá vỡ hành vi đó. –

+0

Kể từ khi trở lại hành vi cũ dường như không thể, tôi đã từ chức bản thân mình để sửa chữa nó lên để nhìn tốt hơn. Câu trả lời của bạn đã làm được điều đó, vì vậy tôi đánh dấu nó là câu trả lời. –

+0

hi, có cơ hội nào bạn tìm ra cách khôi phục hiệu ứng popover trong iOS 5.1 không? – CocoaEv

0

Ok tôi đã cùng một vấn đề, điều này có thể giúp đỡ, nó loại bỏ nền đen mà đạt đến dưới cùng của màn hình ....

cuộc gọi này sau khi bạn hiển thị popoup của bạn ...

- (void)removeInnerShadow { 
    UIWindow *window = [[[UIApplication sharedApplication] delegate] window]; 
    for (UIView *windowSubView in window.subviews) { 

      if ([NSStringFromClass([windowSubView class]) isEqualToString:@"UIDimmingView"]) { 
      for (UIView *dimmingViewSubviews in windowSubView.subviews) { 

       for (UIView *popoverSubview in dimmingViewSubviews.subviews) { 

        popoverSubview.layer.shadowOpacity=0; 
        popoverSubview.layer.masksToBounds = NO; 

        if([NSStringFromClass([popoverSubview class]) isEqualToString:@"_UIPopoverSlidingChromeView"]) 
        { 

         popoverSubview.layer.shadowOpacity=0; 
         popoverSubview.layer.masksToBounds = NO; 

        } 
       } 
      } 
     } 
    } 
} 
0

Có thể hoàn nguyên! - với MGSplitViewController. Nó cung cấp cho bạn một API tương tự với điều khiển iOS nhưng với popover cũ và kiểm soát nhiều hơn nữa.

0

kể từ iOS 5.1

Từ các tài liệu:

Trong iOS 5.1, lớp UISplitViewController thông qua phong cách trình bày trượt khi trình bày quan điểm trái (trước đây chỉ thấy trong Mail). Kiểu này được sử dụng khi bản trình bày được khởi tạo bởi mục nút thanh hiện có được cung cấp bởi các phương thức ủy nhiệm hoặc bằng cử chỉ vuốt trong chế độ xem bên phải. Không yêu cầu bổ sung API nào để có được hành vi này, và tất cả các API hiện có — bao gồm cả các cá thể của UIPopoverController được cung cấp bởi đại biểu — sẽ tiếp tục hoạt động như trước đây.

việc nhỏ xung quanh qua here ->