xcode / storyboard: không thể kéo nút thanh lên thanh công cụ ở trên cùng


99

Tôi có một bộ điều khiển chế độ xem là chế độ xem chi tiết của một bảng. Khi bạn nhấp vào hàng của bảng, nó sẽ đưa bạn đến chế độ xem chi tiết. Chế độ xem chi tiết được nhúng trong bộ điều khiển điều hướng sao cho có một nút ở phía trên bên trái của thanh điều hướng đưa bạn trở lại bảng. Càng xa càng tốt.

Bây giờ tôi muốn thêm một nút chỉnh sửa vào bên phải của thanh điều hướng để bạn có thể chỉnh sửa chế độ xem chi tiết. Kế hoạch của tôi là điều này sẽ thêm một bộ điều khiển chế độ xem khác theo phương thức cho phép bạn chỉnh sửa chi tiết của mục. Công cụ tiêu chuẩn.

Tuy nhiên, khi tôi cố gắng kéo một mục nút thanh từ danh sách các đối tượng vào thanh điều hướng, nó sẽ không mất. Thay vào đó, khi tôi buông nút chuột, nó sẽ để lại nút thanh trên bộ điều khiển thanh tab ở phía dưới. (Sơ đồ điều hướng của tôi bao gồm các tab khác nhau và đối với mỗi tab là một bảng, chế độ xem chi tiết, v.v.)

Bất kỳ ai gặp phải điều này trước đây và có thể đề xuất những gì tôi đang làm sai hoặc một số cách giải quyết để thêm mục nút thanh vào phía bên phải của màn hình điều hướng. Tôi có phải thêm nó vào mã không?

Cảm ơn vì bất kỳ đề xuất.


Kiểm tra hướng dẫn sau đây brianflove.com/2012/10/01/…
casillas

Tôi đã có thể thêm nút bằng self.navigationItem.rightBarButtonItem = self.editButtonItem; và tạo editvc mới trong storyboard, tuy nhiên, tôi không biết chắc cách tạo segue. Không thể làm điều đó trong bảng phân cảnh vì nút chỉnh sửa không hiển thị nên tôi đoán nó phải ở dạng mã. sẽ cố gắng chuẩn bị?
user1904273

Nếu một trong những câu trả lời giúp bạn, bạn nên chấp nhận nó :)

Câu trả lời:


157

Tôi đã gặp vấn đề tương tự khi sử dụng Xcode6 và tôi nhận thấy rằng UINavigationItem được thêm tự động cho ViewController đầu tiên mà bạn nhúng vào NavigationController nhưng đối với các ViewControllers tiếp theo, bạn sẽ phải thêm nó theo cách thủ công như sau:

  1. Trong thư viện Đối tượng, hãy tìm Mục điều hướng, sau đó kéo nó vào ViewController thứ hai của bạn trong bảng phân cảnh.
  2. Trong thư viện Đối tượng, hãy tìm Mục Nút Thanh, sau đó kéo Mục đó vào mục dẫn hướng mà bạn đã tạo ở bước trước.

Bây giờ bạn sẽ có các Nút thanh của bạn được gắn vào đầu cảnh của bạn.

Cập nhật Giải pháp vẫn hoạt động với XCode 7 nhưng tôi muốn thêm ảnh mô tả. Chỉ trong trường hợp bất kỳ ai không thực sự quen thuộc với các tên tiêu chuẩn hoặc kỹ thuật được đề cập ở trên. Chú ý các mũi tên màu đỏ ở bên phải, chúng tham khảo bước 1, bước 2 đã nói ở trên. Cũng lưu ý thứ bậc của các chế độ xem trên hình chữ nhật màu đỏ bên trái. nhập mô tả hình ảnh ở đây


2
Vâng, điều đó đã làm điều đó cho tôi. Tôi nghĩ đây là câu trả lời chính xác, XCode dường như không thêm Mục điều hướng vào các ViewControllers tiếp theo.
Jeremy Chone

điều này đúng nhưng mũi tên màu đỏ trong hình ảnh sẽ đi từ mục nút thanh trong thư viện đối tượng đến hộp màu đỏ bên trái.
malhal

Bạn có thể thả nó vào canvas cũng như được biểu thị bằng mũi tên màu đỏ hoặc bạn có thể thả nó trong đường viền Tài liệu như bạn đã đề xuất. Nó không tạo sự khác biệt
Wael Showair

Thật vui vì tôi đã tìm thấy câu trả lời này vì nó hoạt động tuyệt vời - Tôi chỉ bối rối tại sao UINavigationItem chưa có trên Bảng phân cảnh? Rõ ràng là nó ở đó trong thời gian chạy, vì mã self.navigationItem.rightBarButtonItem = ...sẽ hoạt động. Tôi đoán UINavigationController trên VC đầu tiên khởi tạo nó cho tất cả các VC tiếp theo được đẩy lên ngăn xếp. Tuy nhiên, bằng cách kéo thủ công một vào đó, tại sao bạn không kết thúc với 2 UINavigationItems ở trên cùng? Cái bạn đã kéo theo cách thủ công và cái đã ở đó từ UINavigationController?
James Toomey

70

Mẹo khó:

  1. Thay đổi segue của bạn để đẩy.
  2. Đặt nội dung bạn cần
  3. Đặt lại để hiển thị

Sau đó, nội dung sẽ có thể chỉnh sửa được và bạn có một phong cách không dùng nữa cho segue.


Trời đất, xấu quá. Nhưng điều này hoạt động UIBarButtonItemtrên bộ điều khiển chế độ xem trong Xcode 7.3 .
mikeho

OMG, nó vẫn đang hoạt động trong XCode 8.2.1. Khi nào nó sẽ được sửa? Không bao giờ, có lẽ
Dima Rostopira

Đây là cách duy nhất tôi tìm thấy mà không cần thêm nó bằng mã.
Joshua

Trời ơi ... Cảm ơn bạn (y)
Nasir Khan

Tôi không thể tin rằng lỗi này vẫn còn ở đây sau hơn 2 năm
Carioni

33

Bộ điều khiển chế độ xem của bảng phân cảnh của bạn có thể thiếu a Navigation Item. Bạn có thể kéo một cái từ thư viện Đối tượng và thả nó vào bộ điều khiển chế độ xem của bạn.

Sau đó, bạn sẽ có thể kéo và thả các mục nút thanh vào bên trái hoặc bên phải của thanh điều hướng.


1
này làm việc, nhưng tôi cảm thấy như thế này thường được thực hiện tự động miễn là bạn đã có một segue push to một bộ điều khiển
aryaxt

Đây phải là câu trả lời chính xác. Phần còn lại dường như hack để tôi
MK Yung

23

tôi đã giải quyết nó. kéo trong 'Mục điều hướng' để xem chi tiết của bạn. hơn bạn có thể kéo trong Mục Nút Thanh.


8

Cách mà tôi đã khắc phục sự cố này là, thay vì kéo UINavigationController vào Storyboard và cố gắng thêm UIBarButtonItems vào đó, tôi đã kéo UITableViewController và sau đó đi đến

Editor-> Embed In-> Navigation Controller

Điều này cho kết quả tương tự như trước đây ngoại trừ tôi có thể thêm UIBarButtonItems vào cả hai bên của thanh điều hướng mà không có vấn đề gì.


Bạn nên đi lên !!
Vin

5

Vấn đề xcode thực sự của nó. Một thủ thuật hiệu quả với tôi là thêm nút thanh trong CẤU TRÚC TẬP TIN XEM Ở TRÁI. Đã chèn trực tiếp vào chế độ xem. Hy vọng nó sẽ giúp bạn. :)


Những công việc này! Tôi đoán đây là giải pháp miễn là Apple sửa lỗi lỗi với Xcode 8.2
Arjun Kalidas

5

Tôi nghĩ rằng nó là một lỗi. Tôi đã gặp vấn đề tương tự. Tôi đã khắc phục sự cố này bằng cách vô hiệu hóa các lớp kích thước, sau đó bật nó lên.

Bạn có thể tắt và bật các lớp kích thước trong tài liệu Trình tạo giao diện.

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


4

Tôi cũng gặp sự cố này, hãy đóng và mở lại dự án đã làm việc cho tôi.


3

Tôi tin rằng đó là một câu chuyện kỳ ​​quặc về XCode. Tôi gặp vấn đề tương tự. Tôi đã phải đặt lại Xcode và thay đổi vị trí của mọi thứ trên bảng phân cảnh để cuối cùng nó hoạt động. Nó đang làm việc bây giờ.


3

Tôi nghĩ rằng đây là một lỗi của Xcode. Trong Xcode 8, thay đổi seguebảng phân cảnh trong trước bộ điều khiển chế độ xem thanh tab thành tất cả các tùy chọn của nó ( show detail, present...). Sau đó trở lại show. Cố gắng kéo các mục nút thanh và sửa đổi ô. Nó hoạt động cho tôi!


1

Bạn đã thử "làm sạch" dự án của mình? Tôi biết điều đó sẽ giúp tôi đôi khi (chỉ cần đi tới "Sản phẩm"> "Sạch sẽ"). Hoặc, cách khác, xóa thanh điều hướng và thử lại.

Nếu bạn cho rằng đó là lỗi lập trình, vui lòng chuyển mã của bạn. Tôi sẵn lòng trợ giúp bằng mọi cách có thể. :)


1

Bạn phải đặt lại xCode IDE. Đóng xCode và viết các mã dưới đây tại thiết bị đầu cuối ... Nó sẽ hoạt động.

rm -rf $HOME/Library/Application Support/Developer/Shared/Xcode
rm -rf $HOME/Library/Preferences/com.apple.dt.Xcode.*
rm -rf $HOME/Library/Saved\ Application\ State/com.apple.dt.Xcode.savedState
rm -rf $HOME/Library/Developer/Xcode

1

Cùng một vấn đề. Tôi có Bộ điều khiển Chế độ xem Bảng bên trong Bộ điều khiển Điều hướng và nhiều Bộ điều khiển Chế độ xem tiếp theo sâu hơn trong chuỗi. 'Mục Điều hướng' đang được tạo tự động cho bộ điều khiển chế độ xem gốc FIRST và tôi có thể thêm 'Mục Nút Thanh' vào mục này mà không gặp sự cố. Qua Bảng phân cảnh, kéo và thả. Nhưng đó là tất cả. Trên Bộ điều khiển Chế độ xem Bảng sau đây và các bộ điều khiển chế độ xem khác, mặc dù chúng nằm trong Bộ điều khiển Điều hướng ban đầu (nút quay lại được tạo tự động xuất hiện), bảng phân cảnh sẽ không bao giờ cho phép tôi thêm Mục Nút Thanh.

Giải pháp của Wael Showair không phù hợp với tôi. Các Mục Nút Thanh sẽ không xuất hiện.

Cuối cùng thì tôi đã giải quyết nó theo chương trình (Swift 2.0):

var testButton = UIBarButtonItem(title: "Test Button", style .Plain, target: self, action: "testButtonMethod")
self.tabBarController?.navigationItem.rightBarButtonItem = testButton

Không cần mục Điều hướng bổ sung hoặc Mục nút thanh.


1

Tôi cũng gặp phải vấn đề tương tự. Tôi đã có thể khắc phục sự cố này bằng cách chọn tùy chọn bộ điều khiển chế độ xem gốc và sau đó trong ma trận mô phỏng đã thay đổi tùy chọn Thanh trên cùng thành Thanh điều hướng đục và có thể thêm mục trên đầu thanh điều hướng. câu trả lời này sẽ giúp ai đó.


1

Tôi đã gặp vấn đề tương tự trong xcode 8. Tôi chỉ cần đóng xcode và mở lại dự án và sau đó tôi có thể thêm nút thanh vào Bộ điều khiển gốc mà không gặp bất kỳ sự cố nào.


1

Đối với XCode 8

Có rất nhiều câu trả lời ở đây. Tôi đã thử một số trong số họ nhưng tôi không thể làm được. Vì vậy, tôi tìm thấy giải pháp của tôi, chỉ cần chọn của bạn ViewController, đi Attributes Inspector phần và thay đổi Bar trên để Opaque Navigation Bar và Boom. Bạn sẽ thấy thanh điều hướng trên bảng phân cảnh của mình. Bạn có thể thay đổi tiêu đề hoặc thêm một số mục. Nếu bạn không muốn giữ Opaque, bạn có thể thay đổi kiểu thành Inferred .

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


1

Trong Xcode 10, tôi vừa thay đổi loại segue đi đến bộ điều khiển chế độ xem mới này thành 'Đẩy (không được dùng nữa)', thêm mục điều hướng vì nó được phép sau khi tôi thực hiện chuyển đổi này. Nếu bạn chuyển về loại segue mong muốn ban đầu, mục điều hướng sẽ vẫn còn.


0

Thay vì kéo "Mục Nút Thanh" vào "Bộ điều khiển Điều hướng", hãy kéo nó vào "Bộ điều khiển Chế độ xem Chi tiết". Khi bạn nhúng chế độ xem Chi tiết vào "Dạng xem Điều hướng", "Mục Điều hướng" sẽ được thêm vào "Bộ điều khiển Chế độ xem Chi tiết". Nếu bạn kéo "Mục Nút Thanh" sang phía bên phải của Mục Điều hướng, mục này sẽ được đưa vào "Mục Nút Thanh Bên phải"


0

như Mark Lyons đã nói, tôi đã sử dụng cùng một giải pháp.

  • đã sử dụng push segue trước
  • đã thêm mục thanh
  • trở lại để hiển thị segue
  • làm xong

0

Trong Xcode 11, bạn có thể kéo một nút vào thanh điều hướng để tạo nút thanh của bạn.

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.