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?
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
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