2016-06-29 16 views
5

Tôi bắt đầu học phát triển iOS gần đây. Tôi đã thực hiện một dự án bằng cách sử dụng UINavigationController bằng cách nhúng nó bởi vì tôi cần một thanh tiêu đề. Nhưng tôi có thể đạt được điều tương tự bằng cách sử dụng UINavigationBar từ thư viện đối tượng.Sự khác biệt giữa việc sử dụng UINavigationController và UINavigationBar

Sự khác biệt duy nhất tôi thấy là khi tôi sử dụng UINavigationController Tôi nhận được nút quay lại khi tôi sử dụng segue. Có sự khác biệt nào giữa chúng không? Cái nào được sử dụng trong tình huống nào?

Nhân tiện, tại sao một NavigationController khác được thêm vào bảng phân cảnh của tôi? Ý nghĩa của nó là gì? (Không ai giải thích về nó trong bất kỳ video nào tôi đã xem)

Cảm ơn bạn.

Trả lời

3

Các NavigationController xử lý riêng UINavigationBar một cách tự động và cũng xử lý chuyển hướng của bạn stack của viewControllers, The NavigationController có một đại biểu mà bạn có thể sử dụng để biết những gì đang xảy ra trong viewControllerNavigationStack của bạn và vv

Sử dụng các đại biểu của NavigationController bạn có thể ví dụ được thông báo khi:

  • Các NavigationController sẽ hiển thị một số viewController, sử dụng phương pháp này:

    - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated;

  • Các NavigationController đã làm hiển thị một số viewController, sử dụng phương pháp này:

    - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated; 
    

Bạn cũng có thể sử dụng NavigationController đi vào viewController cụ thể về hướng chồng của bạn chẳng hạn, hoặc bạn có thể bật và đẩy viewController mà không segues

+0

"The NavigationController có một đại biểu rằng bạn không thể sử dụng để biết những gì đang xảy ra trong bạn viewControllerNavigationStack và vv ". Bạn có thể giải thích thêm điều này không? –

+0

@ user6528991 câu trả lời của tôi đã được chỉnh sửa để giải thích nhận xét của bạn, tôi hy vọng điều này sẽ giúp –

+0

ông có nghĩa là "có thể" không "không thể" nhưng bạn không thể chỉnh sửa câu hỏi trong SO cho đến khi bạn thực hiện 6 ký tự. – Hakim

2

Các UINavigationBar:

Lớp UINavigationBar cung cấp điều khiển để điều hướng nội dung phân cấp . Đó là một thanh, thường được hiển thị ở đầu màn hình , chứa các nút để điều hướng trong một hệ thống phân cấp của các màn hình . Các thuộc tính chính là nút trái (quay lại), một tiêu đề trung tâm và nút tùy chọn bên phải. Bạn có thể sử dụng thanh điều hướng làm đối tượng độc lập hoặc kết hợp với đối tượng điều khiển điều hướng .

Các UINavigationController:

Lớp UINavigationController thực hiện một chuyên xem điều khiển quản lý điều hướng nội dung phân cấp. Giao diện điều hướng này giúp bạn có thể trình bày dữ liệu của mình hiệu quả và giúp người dùng dễ dàng điều hướng nội dung đó hơn. Bạn thường sử dụng lớp này với tư cách là nhưng bạn cũng có thể phân lớp thành tùy chỉnh hành vi của lớp học.

Sử dụng Navigation Bar Với Navigation khiển

Cách phổ biến nhất để sử dụng một thanh điều hướng là kết hợp với một đối tượng UINavigationController. Nếu bạn sử dụng bộ điều khiển điều hướng để quản lý điều hướng giữa các màn hình nội dung khác nhau, trình điều khiển điều hướng sẽ tự động tạo thanh điều hướng và đẩy và bật các mục điều hướng khi thích hợp.

Trình điều khiển điều hướng tự động gán chính nó làm đại biểu của đối tượng thanh điều hướng của nó. Vì vậy, khi sử dụng một bộ điều khiển chuyển hướng , đừng gán một đối tượng tùy chỉnh đại biểu cho tương ứng thanh điều hướng

enter image description here

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