2011-10-12 32 views
9

Trong ứng dụng của tôi rằng hoạt động tốt trên iOS 4 Navigationbar dissappeared bắt đầu iOS 5. Dưới đây là những gì tôi hình dung vấn đề gây ra: Tôi đã được gỡ bỏ subviews trong phương pháp RootViewController viewWillAppear:iOS 5 UINavigationBar loại bỏ subviews (hình ảnh subview) loại bỏ thanh điều hướng

for(UIView* view in self.navigationController.navigationBar.subviews) 
    { 
     if ([view isKindOfClass:[UILabel class]]) 
     { 
      [view removeFromSuperview]; 
     } 
     if([view isKindOfClass:[UIImageView class]]) 
     { 
      [view removeFromSuperview]; 
     } 
    } 

Tôi đã làm điều này vì bộ điều khiển xem thứ hai mà tôi đẩy lên hình ảnh và nhãn của bộ điều khiển điều hướng thêm vào thanh điều hướng mà tôi phải xóa khi chế độ xem được bật. Trong iOS 5 mã trên loại bỏ navigationBar. Làm thế nào để sửa chữa điều này hoặc đúng cách để làm nó để hỗ trợ cả iOS4 và iOS 5?

Trả lời

6

setTag cho những hình ảnh và uilabel đó sau đó xóa thẻ khỏi mã ở trên làm thủ thuật.

for(UIView* view in self.navigationController.navigationBar.subviews) 
{ 
    if(view.tag == 9 || view.tag == 99) 
    { 
     [view removeFromSuperview]; 
    } 
} 
+0

Có, điều này sẽ làm việc về mặt kỹ thuật, nhưng mã của bạn trở nên ít hiểu hơn nếu bạn hoặc người khác cần quay lại sau. Bạn có nguy cơ không đọc được hiệu quả và theo dõi mã của bạn đang làm gì. Ít nhất, làm cho các thẻ đó hằng số để giúp bạn xem những gì bạn đang xóa. – RPeck

+0

Bạn chỉ cần xóa chế độ xem con bằng cách sử dụng mã bên dưới [(UILabel *) [self.navigationController.navigationBar viewWithTag: yourViewTag] removeFromSuperview]; – Himanshu

0

Bạn có thể làm cho các lớp con lượt xem được thêm vào của các lớp UIKit tương ứng và kiểm tra các lớp con cụ thể đó. Mặc dù vậy, để có mã rõ ràng nhất, dễ đọc nhất, bạn nên phân lớp bộ điều hướng điều hướng và thanh điều hướng để cho phép hình ảnh và nhãn tùy chỉnh được vẽ sao cho bạn chỉ có thể đặt hình nền và nhãn nền thành không. Phải mất một ít thời gian để tập hợp lại, nhưng kết quả cuối cùng sẽ dễ dàng hơn nhiều.

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