Thanh điều hướng xuất hiện khi nhấp vào xem


8

Tôi đính kèm video về vấn đề của tôi. Khi tôi nhấp vào bất cứ nơi nào trong thanh điều hướng khung nhìn xuất hiện

override func viewWillAppear(_ animated: Bool) {
    self.navigationController?.setNavigationBarHidden(true, animated: true)
    self.navigationController?.isNavigationBarHidden = true
    self.navigationController?.hidesBarsOnTap = true
}

Đoạn mã trên được thêm vào viewwillappear nó hoạt động ban đầu nhưng khi tôi nhấp vào bất cứ nơi nào trên thanh điều hướng màn hình sẽ xuất hiện.


Bạn đang sử dụng SceneDelegate?
Cướp

Dự án này được tạo trong xcode 10
kishor soneji

Bạn có thể chỉ cho tôi AppDelegate, nơi bạn đã xác định của bạn NavigationController?
Cướp

hãy để bảng phân cảnh: UIStoryboard = UIStoryboard (tên: "Chính", gói: nil) hãy để navigationContoder: UINavestionControll = Storyboard.instantiateInitialViewCont điều khiển () như! UINavestionControll hãy để rootViewControll: UIViewControll = Storyboard.instantiateViewCont điều khiển (withIdentifier: "NexaRootSideMothyViewCont điều khiển") như! NexaRootSideMenuViewController navigationController.viewControllers = [rootViewController] navigationController.isNavigationBarHidden = true appdelegate.window .rootViewController = navigationController?
Kishor soneji

1
Hãy thử điều này:navigationController.setNavigationBarHidden(true, animated: false)
Cướp

Câu trả lời:


3

Cuối cùng, giải pháp này hiệu quả với tôi

self.navigationController?.navigationBar.transform = CGAffineTransform(translationX: 0, y: -200)

2
Đây là một giải pháp, nhưng những gì nó làm là di chuyển màn hình thanh điều hướng. Hành vi hiển thị thanh điều hướng trên máy vẫn đang diễn ra. Tôi sẽ đề nghị giải quyết nguyên nhân thực sự và đưa ra giải pháp thích hợp.
Eelco Koelewijn

0

Thử mã dưới đây vào ViewControllerbạn muốn ẩnNavigationBar

DispatchQueue.main.async {
    self.navigationController?.setNavigationBarHidden(true, animated: false)
    self.view.isUserInteractionEnabled = true
    //Below code conflicts with the hidden `NavigationBar` and make it visible on tap so set it false as below
    self.navigationController?.hidesBarsOnTap = false
}

Và THÊM mã bên dưới trong Khác ViewControllermà bạn muốn hiển thị Navigationbar(Không phải trong tất cả các mã khác ViewController, chỉ trong ViewControllerbạn đẩy hoặc bật từ này ViewController)

self.navigationController?.setNavigationBarHidden(false, animated: true)

Không thưa ông, khi tôi chạm vào màn hình, điều hướng thời gian xuất hiện, vui lòng xem video cẩn thận
kishor soneji

0

Hãy thử với hàng đợi toàn cầu

DispatchQueue.global().async {
     navigationController?.setNavigationBarHidden(true, animated: animated)
}

hoặc đơn giản thêm mã này vào viewDidAppear

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    navigationController?.setNavigationBarHidden(true, animated: animated)
}

Nếu hai cái này không hoạt động thì hãy kiểm tra xem sự kiện nhấn của bạn có thể có một số mã được thêm vào để điều hướng


Không thưa ông, khi tôi chạm vào màn hình, điều hướng thời gian xuất hiện, vui lòng xem video cẩn thận
kishor soneji

1
Tôi thấy rằng có thể có một số sự kiện được bắn vào xem tap. vô hiệu hóa tương tác người dùng của chế độ xem : self.view.isUserInteractionEnabled = false. và thử chạm vào màn hình của bạn vẫn còn điều hướng xuất hiện không?
NøBi Mac

Không có sự kiện nào nổ ra trên Tap @ NøBi Mac
kishor soneji

Bạn đã vô hiệu hóa tương tác người dùng trên màn hình của bạn?
NøBi Mac

Khi bạn loại bỏ tương tác người dùng giám sát, vô hiệu hóa tự động xem tương tác người dùng sẽ bị vô hiệu hóa.
kishor soneji

0

Kiểm tra các thuộc tính bảng phân cảnh UINavestionControll chính của bạn trong bảng phân cảnh và bỏ chọn "Ẩn các thanh khi được nén theo chiều dọc", "Ẩn các thanh trên máy". điều này làm cho thanh điều hướng xuất hiện khi nhấp vào xem.

nếu bạn đang tạo UINavestionControll theo chương trình thì hãy sử dụng đoạn mã sau.

UINavigationController().hidesBarsWhenVerticallyCompact = false
UINavigationController().hidesBarsOnTap = false

nhập mô tả hình ảnh ở đây


Câu trả lời này không hiệu quả
kishor soneji

thay đổi điều này trong chế độ xem của bạnWillAppear "navigationContoder? .hidesBarsOnTap = false" và tôi đã chỉnh sửa câu trả lời trên của mình và thử, chủ yếu bỏ chọn tất cả các tùy chọn trong "Ẩn phần trong bảng phân cảnh"
Sand'sHell811

ghi đè func viewWillAppear (_ hoạt hình: Bool) {self.navigationController .setNavigationBarHidden (true, hoạt hình: true)?? self.navigationController .isNavigationBarHidden = true self.navigationController .hidesBarsOnTap = false}
Sand'sHell811

Vui lòng kiểm tra video của tôi. Chế độ xem đã xuất hiện nhưng vấn đề là sau khi một vài chuyển động người dùng nhấp vào điều hướng xem xuất hiện @ Sam'sHell811
kishor soneji

Tôi đã xem video của bạn, Bạn đã thử ở bước này, điều này sẽ giải quyết vấn đề của bạn. Tôi đã tạo cùng một kịch bản nếu có ai đó kiểm tra Ẩn thanh "Bật máy" và "Khi nhỏ gọn theo chiều dọc" thì vấn đề này xảy ra nên bỏ chọn trong bảng phân cảnh hoặc thay đổi cả hai các thuộc tính thành false theo lập trình như tôi đã thấy trong đoạn mã trên của bạn, bạn đã sử dụng hidesBarOnTap = true đang tạo ra vấn đề để làm cho nó sai.
Sand'sHell811

0

HÃY THỬ DƯỚI ĐÂY

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)
    navigationController?.isNavigationBarHidden = true
}

override func viewWillDisappear(_: Bool) {
    super.viewWillDisappear(true)
    navigationItem.title = ""
}

kiểm tra giải pháp này @ kishor-soneji
JhonnyTawk

Vui lòng kiểm tra video @JhonnyTawk Thanh điều hướng ban đầu bị ẩn khi tôi nhấp vào cửa sổ xuất hiện điều hướng thời gian.
kishor soneji
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.