2015-11-13 26 views
10

Tôi đang làm việc trên một ứng dụng mà bộ điều khiển chế độ xem ban đầu của tôi được nhúng trong bộ điều khiển Điều hướng và Thanh tab.Mục nút thanh không được hiển thị trong điều hướngBar

Trong ứng dụng của tôi, tôi có 3 tab khác nhau, một tab là chế độ xem cài đặt. Đây là một tableview với 5 nút. mỗi nút sẽ hiển thị cùng một bộ điều khiển chế độ xem khi được chạm vào.

Khi tôi chạm vào một trong các nút, tôi vẫn có thanh điều hướng màu xanh lá cây đẹp, nhưng các nút của tôi không hoạt động.

Tôi đã thử kéo Mục điều hướng vào chế độ xem trong bảng phân cảnh và sau đó đặt một mục nút thanh trong đó. Tôi có thể thấy nút trong bảng phân cảnh của mình, nhưng nó sẽ không hiển thị trong ứng dụng của tôi khi tôi chạy nó.

Tôi cũng đã thêm đoạn mã sau vào viewDidLoad của tôi():

let leftItem = UIBarButtonItem(title: "< Back", style: .Done, target: self, action: Selector("Save")) 
let rightItem = UIBarButtonItem(title: "Save", style: .Plain, target: self, action: Selector("Save")) 

//self.parentViewController?.navigationItem.leftBarButtonItem = leftItem // also doesn't work 

navigationController?.navigationItem.leftBarButtonItem = leftItem 
navigationController?.navigationItem.rightBarButtonItem = rightItem 

Nhưng nó sẽ không có hiệu lực.

Tôi đã kiểm tra xem UIViewController chính xác đã được gán cho chế độ xem của tôi trong bảng phân cảnh chưa, đã làm một số bản dựng Sạch (CMD + Shift + K) và Xây dựng lại (CMD + B).

Hình ảnh sau đây là ảnh chụp màn hình một phần của bảng phân cảnh và ảnh chụp màn hình ứng dụng của tôi ở chế độ xem nơi các nút sẽ không hiển thị.

EDIT

Added một ảnh chụp màn hình mới về các điều khiển trong giao diện. Chúng không hoạt động với hoặc mà không có mã bổ sung trong chế độ xemDidLoad của tôi.

Screenshot of my Storyboard

Screenshot of my app where the buttons should show up

Screenshot of the the setup of the controls in my view

+2

Xóa điều khiển chuyển hướng đầu tiên của bạn, thứ hai bạn không cần phải thêm lại nút chỉ cần sử dụng push segue, thứ ba cố gắng sử dụng self.navigationItem.leftBarButtonItem (thử thêm tự ngay từ đầu .) –

+0

@ErsinSezgin Cảm ơn! Vấn đề của tôi được giải quyết. Khi bạn có thể đặt câu trả lời, tôi sẽ chấp nhận nó. – Jules

Trả lời

5

của bạn Xóa điều khiển chuyển hướng đầu tiên của bạn, thứ hai bạn không cần phải thêm lại nút chỉ cần sử dụng push segue, thứ ba cố gắng sử dụng self.navigationItem.leftBarButtonItem (thử tự thêm vào đầu.) * Câu trả lời ban đầu là một bình luận.

7

Thay vì

navigationController?.navigationItem.leftBarButtonItem = leftItem 

làm

navigationItem.leftBarButtonItem = leftItem 

Cập nhật tôi đề nghị bạn thêm chúng trực tiếp trong các kịch bản để ViewController

+0

Xin lỗi, nhưng điều đó không có hiệu lực. – Jules

+0

đã cập nhật câu trả lời của tôi, bạn không thể thêm chúng thông qua bảng phân cảnh? Bạn phải kéo và thả trong một navigationItem đầu tiên – MarkHim

+0

Nope đó không phải là làm việc. Tôi đã cập nhật câu hỏi của mình với ảnh chụp màn hình các điều khiển tôi đã thêm vào chế độ xem trong bảng phân cảnh của mình. – Jules

-1
UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 40)]; 

    [button setImage:[[UIImage imageNamed:@"BtnBack"] imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate] forState:UIControlStateNormal]; 
    [button.imageView setTintColor:[UIColor whiteColor]]; 
    [button addTarget:self action:@selector(buttonClicked:) 
    forControlEvents:UIControlEventTouchUpInside]; 
    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] 
            initWithCustomView:button]; 
    self.navigationItem.leftBarButtonItem = buttonItem; 

mã này Viết trên phương thức ViewWillAppear.

0

Điều này đã xảy ra với tôi gần đây. Tôi đã làm những gì Ersin đã đề cập, nhưng vô ích.Rút lui nhiều hơn một chút và phát hiện ra rằng đây là thủ phạm:

nav.pushViewController(notifications, animated: false) nav.pushViewController(interactionCreateOrEdit, animated: false)

tôi đã thay đổi nó để

nav.setViewControllers([notifications, interactionCreateOrEdit], animated: false)

và UIBarButtonItems bắt đầu xuất hiện trở lại.

1

Tôi có hai phân đoạn: một phân đoạn thông qua phân đoạn cốt truyện và một chương trình. Khoảng cách của bảng phân cảnh cho thấy các nút như mong đợi. Tuy nhiên, phân đoạn progammatic cho thấy khung nhìn không có các nút.

Đối với segue chương trình, tôi đã sử dụng:

present(theNewVC, animated: true) 

Các nút xuất hiện và chức năng một cách chính xác khi tôi thay đổi đó để:

show(theNewVC, sender: self) 

mỗi tài liệu, present(...) trình bày điều khiển xem modally. Rõ ràng một bộ điều khiển xem phương thức không nhận được các nút thanh điều hướng. Tôi tiếp tục xác nhận điều này bằng cách thay đổi phân đoạn cốt truyện của tôi thành Present Modally - và các nút cũng biến mất ở đó.

(Sử dụng Xcode 9, Swift 4)

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