Cảnh báo “Kiểu thuần túy không được hỗ trợ trong Mục điều hướng” với Mục nút thanh tùy chỉnh của tôi


88

Tôi kéo Nút Hình tròn đến vị trí của Mục Nút Hình tròn bên phải, và đặt một hình ảnh thành Nút Hình tròn. Tất cả đều hoạt động tốt, ngoại trừ cảnh báo "Kiểu thuần túy không được hỗ trợ trong Mục điều hướng". Ngay cả khi tôi chọn kiểu của Mục nút thanh thành "Có viền", cảnh báo vẫn ở đó. Có vấn đề gì với Xcode 4.2? Cảm ơn trước!

Ps. Tôi đã tùy chỉnh nhiều Mục Nút Thanh bằng Nút Hình tròn, một số lần Xcode 4.2 chỉ hiển thị một cảnh báo trên Mục Nút Thanh, một số lần hiển thị cảnh báo trên tất cả Mục Nút Thanh.


1
Tôi đã viết một bài đăng trên blog về điều này: blog.mosheberman.com/…
Moshe

Không thêm nút, thêm các mục nút thanh. Đây là sai lầm của tôi.
Daniel Springer

Câu trả lời:


135

Tôi có thể xóa các lỗi này bằng cách chỉnh sửa thủ công các tệp bảng phân cảnh và tìm mục nhập style = "trơn" vi phạm trên các mục Nút thanh trong <navigationItem>phần tử.

Thay đổi từ:

<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">

Đến:

<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">

Điều này đã xóa các cảnh báo ... đúng hay sai.

Đây có thể là một vụ hack tuyệt vời và mối quan tâm lớn hơn là tôi đã không tìm ra nguyên nhân gốc rễ hoặc xóa các mục nút thanh vô hình khỏi tài liệu tổng thể. Điều này xảy ra sau khi xem qua tất cả các phần tử một và phát hiện ra một số thanh điều hướng trống (không có phần tử con) và có khả năng xảy ra với một lượng lớn kế thừa sao chép và dán (cmd + c | v) và không sử dụng bản sao (cmd + d) để xây dựng giao diện. Mặc dù nguyên nhân nguồn không phải là nguyên nhân gốc, nhưng vấn đề là các mục thanh không hiển thị trong tài liệu "chế độ xem phác thảo" cần được sửa. Hành vi của Trình tạo giao diện khiến tôi đôi khi có sắc thái và một vùng chứa trống rỗng, nơi đáng lẽ có thứ gì đó trong chế độ xem phác thảo là một mùi. Nó là với tôi bây giờ. Đôi khi việc xóa nút vi phạm và xây dựng lại sẽ khắc phục được các vấn đề kỳ lạ nhất.

CẢNH BÁO: hãy sao lưu bảng phân cảnh của bạn trước khi bạn thử điều này ... quyền kiểm soát phiên bản là bạn của bạn ... Tôi không chịu trách nhiệm khi bảng phân cảnh của bạn đã được hoàn thiện và không biên dịch. Tất cả những gì bạn sẽ nhận được là một câu "Tôi đã nói với bạn như vậy!" Tôi đã học theo cách khó một vài lần, nhưng việc kiểm soát nguồn siêng năng đã giúp tôi đỡ đau đầu.

EDIT: đặt dấu ngoặc vào các khối mã


24
chọn barbuttonitem trong trình tạo giao diện, mở bảng thuộc tính ở bên phải và thay đổi kiểu của mục nút thanh thành "Có viền", áp dụng cùng một khác biệt cho tệp bảng phân cảnh. vì vậy điều này phải an toàn.
mash

Cảm ơn vì lời khuyên đó @mash, cách tôi đã làm thật kinh khủng với nỗi đau và sự đau khổ tiềm tàng.
Hunter-Orionnoir

@ SpaceDog2 Cảm ơn bạn đã quan tâm. Tôi chưa nâng cấp, vì vậy tôi không thể thêm bất kỳ xác nhận nào cho điều đó. Tôi sẽ thực sự cẩn thận với phương pháp này anyway. Tôi biết nó đã giúp rất nhiều người cho đến nay. Trong thời gian, chúng tôi sẽ xem nếu nó ngừng hoạt động để giúp đỡ.
Hunter-Orionnoir

5
Giải pháp này đã hoạt động hoàn hảo đối với tôi trong Xcode 7.1. Ngoài ra, thay vì trực tiếp chỉnh sửa mã nguồn, bạn có thể thay đổi điều này trong chính bảng phân cảnh (chuyển kiểu từ Đồng bằng sang Có viền) và điều đó có kết quả chính xác giống như chỉ xóa thủ công style="plain"khỏi mã nguồn của bảng phân cảnh. Vì vậy, với tôi gợi ý này từ Hunter có vẻ hợp pháp.
Erik van der Neut

Kiểm tra câu trả lời của dstudeba quá, tôi thậm chí không biết những gì anh ấy mô tả là có thể. có thể giúp mọi người đỡ đau đớn và chịu đựng khi chỉnh sửa tệp bằng tay. Kiểm soát nguồn là bạn bè của bạn, hãy an toàn cho mọi người. ;)
Hunter-Orionnoir

31

Trong trường hợp bạn nhấp vào cảnh báo và bạn không đi đến mục điều hướng vi phạm, hãy làm như sau. (mô tả trực quan câu trả lời của Hunter với phương pháp an toàn hơn từ các bình luận được thêm vào)

Trong trình duyệt tệp, nhấp chuột phải vào bảng phân cảnh và chọn Open As Source Code

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

Trong trang mã nguồn, hãy tìm kiếm từ "đơn giản" và tìm cái được đính kèm với Mục điều hướng.

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

Để có được tên của View, đặt "cảnh" vào thanh tìm kiếm và nhấp vào tìm kiếm lại mũi tên để tìm kiếm các trường hợp đầu tiên trên mà thẻ trên cácnavigationItem

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

Đây là tên Cảnh của bạn, bây giờ bạn có thể thay đổi chế độ xem Bảng phân cảnh của mình trở lại Interface Builder - Storyboardbằng phương pháp nhấp chuột phải được mô tả ở trên, sau đó đi đến chọn Cảnh trong menu cảnh và Mục thanh bên trong nó.

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

Chuyển đến trình kiểm tra Thuộc tính và thay đổi kiểu từ PlainthànhBordered

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


1
Mát mẻ. Tôi chắc chắn sẽ thử điều này lần sau khi điều này xảy ra.
Hunter-Orionnoir

13

Tôi đã dừng cảnh báo về Kiểu dáng thuần túy bằng cách xem xét trong Đề cương tài liệu. Điều đó đang hiển thị Mục Điều hướng của tôi và trong 2 Mục Nút Thanh đó và trong mỗi Mục đó là một Nút. Cài đặt vi phạm nằm trên Mục Nút Thanh. Trong trình kiểm tra thuộc tính của nó, tôi đã thay đổi Kiểu từ Thông thường thành Xong và cảnh báo đã biến mất. Lưu ý: Tôi đang sử dụng XCode 5.


8

Nếu bạn đang sử dụng bảng phân cảnh, hãy nhấp vào cảnh báo và nó sẽ đưa bạn đến mục điều hướng vi phạm (tôi có hai cho vấn đề, một đưa tôi đến đó, cái kia thì không) - thay đổi kiểu và làm sạch dự án.

Kiểu nút thanh được đặt thành đơn giản


Trong vấn đề này, nó không thực sự đưa tôi đi đâu cả. Tôi nghĩ rằng đó là điểm mấu chốt của vấn đề cụ thể này, vật phẩm hoàn toàn bị thiếu trong bộ điều hướng, nhưng câu trả lời của dstudeba có một cách tiếp cận thú vị, hãy tò mò nếu mở bảng phân cảnh khác giúp mọi người.
Hunter-Orionnoir

Đây là câu trả lời thích hợp nhất. Tôi đã thay đổi kiểu thành Giáp.
Andrej

6

backBarButtonItem leftBarButtonItemrightBarButtonItemUINavigationItemcác đối tượng. Không có styletài sản trong UINavigationItemvì vậy đây là lý do của cảnh báo. Bạn nên đặt barButtons theo chương trình:

iOS 4:  

UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect];
 [bt setFrame:YourFrame];
 //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal];
 [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
 UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt];
 self.navigationItem.leftBarButtonItem=leftButton;

Đối với iOS 5+:

Đọc phần "Tùy chỉnh Giao diện" của tài liệu tham khảo UIBarButtonItem .


3
Tôi có một dự án kế thừa với rất nhiều nút và bộ điều khiển chế độ xem. Tôi dường như không thể thuyết phục XCode cho tôi biết nút nào đang gây ra cảnh báo. Bất kỳ gợi ý? Cảm ơn!
Olie

Có thể chạy qua bộ điều khiển chế độ xem của bạn và "tìm" UIBarButtonItenStyle. Đó thường là nơi thuộc tính được đặt sai
TimWhiting

1

Trong thanh điều hướng, hãy thử sử dụng UIBarButtonItem thay vì nút Hình chữ nhật tròn và đặt Hình ảnh cho nó.


nhưng phong cách của UIBarButtonItem không phải là thứ tôi cần.
lu nhân dân tệ

1

Trong trường hợp của tôi, đó là hình ảnh của một mũi tên quay lại, được đặt thành "Đồng bằng".

Thông báo lỗi xuất hiện để chỉ tất cả các mục trong thanh điều hướng.


0

Sau khi bạn chắc chắn rằng bạn có tất cả các nút thanh của mình trong bảng phân cảnh được đặt thành bất kỳ thứ gì ngoại trừ đơn giản, hãy đảm bảo bạn thực hiện cam kết git và xóa dữ liệu bắt nguồn. Tôi đã dành mãi mãi để cố gắng tìm ra lý do tại sao sự cố không tự khắc phục và việc xóa thư mục dữ liệu dẫn xuất đã khắc phục được sự cố cho tôi.

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.