11

Tôi đã lang thang cách ẩn/xóa/vô hiệu hóa thanh điều hướng chính hoặc đầu tiên trong bộ điều khiển điều hướng để tôi có thể đặt hình ảnh làm toàn bộ màn hình nền nhưng tôi không thể tìm thấy giải pháp nào.Làm cách nào để ẩn/vô hiệu hóa thanh uinavigation đầu tiên?

Đã thử ẩn chế độ xem tiêu đề trong viewdidLoad của bộ điều khiển điều hướng chính nhưng không hoạt động. Đã thử sử dụng navigationBarHidden nhưng nó ẩn toàn bộ thanh điều hướng cho bộ điều khiển tiếp theo.

Vì vậy, tôi không chắc chắn cách thực hiện việc này. Để cung cấp cho bạn một ví dụ, tôi muốn có một cái gì đó như ứng dụng này - The Masters Golf Tournament - http://appshopper.com/sports/the-masters-golf-tournament.

Nếu bạn nhìn vào màn hình 1, nó không có bất kỳ thanh điều hướng nào ở trên cùng nhưng khi bạn chạm vào bất kỳ tùy chọn nào, nó sẽ đẩy đến bộ điều khiển chế độ xem mới và có thanh điều hướng xuất hiện như trong màn hình 3,4 và 5

Hy vọng mọi người có thể giúp tôi với điều này.Cảm ơn rất nhiều!

Trả lời

18

Trong hầu hết các ứng dụng của tôi, tôi có một lớp UIViewController tùy chỉnh mà tôi lấy được tất cả các bộ điều khiển tùy chỉnh khác. Trong một số điều này, tôi đã thêm một phương thức như navigationBarInitiallyHidden vào lớp cơ sở mà các lớp khác có thể ghi đè lên. Kết quả mặc định tùy thuộc vào bản chất của ứng dụng.

Trong đại biểu của bộ điều khiển điều hướng, khi bộ điều khiển được hiển thị thực hiện phương thức đó, đại biểu ẩn hoặc hiển thị bộ điều hướng điều hướng cho phù hợp. Vì tôi tạo hiệu ứng ẩn hoặc hiển thị, tôi kiểm tra trạng thái hiện tại và không làm gì nếu không cần thay đổi.

Bạn có thể làm điều gì đó đơn giản hơn trong phương thức đại biểu của mình. Nếu bộ điều khiển được hiển thị là bộ điều khiển gốc, hãy ẩn thanh điều hướng, nếu không hiển thị nó nếu nó bị ẩn.

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { 
    if (viewController == rootController) { 
    [navigationController setNavigationBarHidden:YES animated:animated]; 
    } else if ([navigationController isNavigationBarHidden]) { 
    [navigationController setNavigationBarHidden:NO animated:animated]; 
    } 
} 
12

Bạn có thể ẩn thanh điều hướng: [self.navigationController setNavigationBarHidden:YES]; và nơi bạn muốn hiển thị thanh điều hướng lại [self.navigationController setNavigationBarHidden:NO];

5

ẩn/disable

self.navigationController.navigationBarHidden = YES; 

chương trình/Bật

self.navigationController.navigationBarHidden = NO; 
0

Bạn có thể ẩn thanh điều hướng bằng cách sử dụng mã dưới đây. Dưới đây mã sẽ ẩn thanh điều hướng tại thời điểm viewWillAppear.

Objective C

-(void)viewWillAppear:(BOOL)animated 
{ 
     [[self navigationController] setNavigationBarHidden:YES animated:NO]; 
} 

Swift

self.navigationController?.setNavigationBarHidden(true, animated: animated) 
Các vấn đề liên quan