사용자 정의 된 막대 단추 항목에 "내비게이션 항목에서 지원되지 않는 일반 스타일"경고


88

Round Rect Button을 오른쪽 Bar Button Item 위치로 드래그하고 Round Rect Button에 이미지를 설정합니다. "탐색 항목에서 지원되지 않는 일반 스타일"경고를 제외하고 모두 잘 작동합니다. Bar Button Item의 스타일을 "Border"로 선택하더라도 경고는 여전히 존재합니다. Xcode 4.2의 문제는 무엇입니까? 미리 감사드립니다!

추신. Round Rect Button을 사용하여 많은 Bar Button 항목을 사용자 정의했습니다. Xcode 4.2는 Bar Button Item에 대해 하나의 경고 만 표시하고 일부는 모든 Bar Button 항목에 경고를 표시합니다.


1
: 나는 이것에 대해 블로그 게시물 작성 blog.mosheberman.com/...
모세

버튼을 추가하지 말고 바 버튼 항목을 추가하십시오. 제 실수였습니다.
Daniel Springer

답변:


136

스토리 보드 파일을 수동으로 편집하여 이러한 오류를 제거하고 <navigationItem>요소의 Bar Button 항목에서 문제가되는 style = "plain"항목을 찾을 수 있었습니다.

다음에서 변경 :

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

에:

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

이것은 경고를 지 웠습니다 ... 옳고 그름.

이것은 엄청난 해킹 일 수 있으며 더 큰 우려는 내가 그것을 근본 원인으로 만들지 않았거나 전체 문서에서 보이지 않는 바 버튼 항목을 제거하지 않았다는 것입니다. 이것은 모든 요소를 ​​하나씩 살펴보고 일부 탐색 모음이 비어 있고 (자식 없음) 많은 양의 복사 및 붙여 넣기 (cmd + c | v) 상속과 중복 (cmd + d)을 사용하지 않는 경우 발생했을 가능성이 있음을 발견 한 후였습니다. 인터페이스를 구축합니다. 원인이 근본 원인은 아니었지만 문서 "개요보기"에 표시되지 않는 막대 항목이 수정되었습니다. Interface Builder 동작은 때때로 미묘한 차이로 나에게 충격을 주며 개요보기에 무언가가 있어야하는 빈 컨테이너는 냄새입니다. 이제 나에게있어. 때때로 문제가되는 노드를 삭제하고 다시 빌드하면 가장 이상한 문제가 해결됩니다.

경고 : 이것을 시도하기 전에 스토리 보드를 백업하십시오 ... 버전 관리는 친구입니다 ... 스토리 보드가 완전히 꽉 차서 컴파일되지 않을 때 저는 책임을지지 않습니다. 얻을 수있는 것은 "내가 그렇게 말했어!" 어려운 방법을 몇 번 배웠지 만 부지런한 소스 제어로 두통을 덜어주었습니다.

편집 : 코드 블록에 대괄호 삽입


24
인터페이스 빌더에서 barbuttonitem을 선택하고 오른쪽에있는 속성 패널을 열고 막대 버튼 항목의 스타일을 "Border"로 변경하면 동일한 diff가 스토리 보드 파일에 적용됩니다. 그래서 이것은 안전해야합니다.
mash

@mash의 조언에 감사드립니다. 제가 한 방식은 잠재적 인 고통과 고통으로 끔찍하게 처리되었습니다.
Hunter-Orionnoir 2015-08-04

@ SpaceDog2 머리를 올려 주셔서 감사합니다. 아직 업그레이드하지 않았기 때문에 확인을 추가 할 수 없습니다. 어쨌든이 방법은 정말 조심할 것입니다. 나는 그것이 지금까지 많은 사람들을 도왔다는 것을 알고 있습니다. 시간이 지나면 도움이 중단되는지 확인할 것입니다.
Hunter-Orionnoir 2015 년

5
이 솔루션은 Xcode 7.1에서 완벽하게 작동했습니다. 또한 소스 코드를 직접 편집하는 대신 스토리 보드 자체에서 변경할 수 있으며 (스타일을 Plain에서 Bordered로 전환), style="plain"스토리 보드 소스 코드에서 수동으로 삭제하는 것과 똑같은 결과를 얻을 수 있습니다 . 그래서 헌터의이 제안은 합법적 인 것 같습니다.
Erik van der Neut 2015

dstudeba의 대답도 확인하십시오. 그가 설명하는 것이 가능하다는 것도 몰랐습니다. 모든 사람이 파일을 직접 편집하는 데 따른 고통과 고통을 덜어 줄 수 있습니다. 소스 제어는 당신의 친구입니다. ;)
Hunter-Orionnoir 2015

31

경고를 클릭하고 잘못된 탐색 항목으로 이동하지 않은 경우 다음을 수행하십시오. (추가 된 댓글에서 더 안전한 방법으로 Hunter의 답변을 시각적으로 표현)

파일 브라우저에서 스토리 보드를 마우스 오른쪽 버튼으로 클릭하고 Open As Source Code

여기에 이미지 설명 입력

소스 코드 페이지에서 "일반"을 검색하고 탐색 항목에 첨부 된 항목을 찾으십시오.

여기에 이미지 설명 입력

뷰의 이름을 얻으려면 검색 창에 "장면"을 입력하고 뒤로 검색 화살표를 클릭하여 해당 태그 의 첫 번째 인스턴스를 검색 합니다.navigationItem

여기에 이미지 설명 입력

여기에 장면의 이름이 있습니다. 이제 Interface Builder - Storyboard위에서 설명한 오른쪽 클릭 방법으로 스토리 보드보기를 다시로 변경 한 다음 장면 메뉴에서 장면을 선택하고 그 안에있는 바 항목을 선택할 수 있습니다.

여기에 이미지 설명 입력

속성 관리자로 이동하여 스타일을 Plain에서Bordered

여기에 이미지 설명 입력


1
멋있는. 다음에 이런 일이 발생하면 확실히 시도해 볼 것입니다.
Hunter-Orionnoir 2015

13

문서 개요를 둘러 보면서 Plain Style에 대한 경고를 중지했습니다. 그것은 내 내비게이션 아이템과 그 2 개의 바 버튼 아이템 안에, 그리고 그 각각 안에 버튼을 보여주고있었습니다. 잘못된 설정이 바 버튼 항목에 있습니다. 속성 관리자에서 Style을 Plain에서 Done으로 변경하고 경고가 사라졌습니다. 참고 : 저는 XCode 5를 사용하고 있습니다.


8

스토리 보드를 사용하는 경우 경고를 클릭하면 문제가되는 탐색 항목으로 이동합니다 (문제에 대해 두 개가 있었는데 하나는 거기에 데려 갔고 다른 하나는하지 않았습니다)-스타일을 변경하고 프로젝트를 정리하십시오.

바 버튼 스타일이 일반으로 설정 됨


위의 문제에서는 실제로 나를 어디로 든 데려 가지 않았습니다. 나는 그것이이 특정 문제의 고집이라고 생각합니다. 네비게이터에서 항목이 모두 누락되었지만 dstudeba의 대답에는 흥미로운 접근 방식이 있습니다. 스토리 보드를 여는 것이 사람들에게 도움이되는지 궁금합니다.
Hunter-Orionnoir 2015

이것이 가장 적절한 대답입니다. 스타일을 Bordered로 변경했습니다.
Andrej

6

backBarButtonItem leftBarButtonItem하고 rightBarButtonItem있는 UINavigationItem객체. 에 style속성이 UINavigationItem없으므로 이것이 경고의 이유입니다. barButtons는 프로그래밍 방식으로 설정해야합니다.

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;

iOS 5 이상 :

UIBarButtonItem 참조 의 "Customizing Appearance"섹션을 읽어보십시오 .


3
많은 뷰 컨트롤러와 버튼이있는 상속 된 프로젝트가 있습니다. 어떤 버튼이 경고를 일으키는 지 알려주도록 XCode를 동조하는 것 같지 않습니다. 힌트가 있습니까? 감사!
Olie 2013-09-23

뷰 컨트롤러를 통해 실행하고 UIBarButtonItenStyle을 "찾을"수 있습니다. 그것은 일반적으로 속성이 잘못 설정되는 곳입니다
TimWhiting

1

내비게이션 바에서 Round rect 버튼 대신 UIBarButtonItem을 사용하고 Image를 설정해보십시오.


하지만 UIBarButtonItem의 스타일은 내가 필요한 것이 아닙니다.
루 위안

1

제 경우에는 "일반"으로 설정된 뒤로 화살표 이미지였습니다.

탐색 모음의 모든 항목을 참조하는 오류 메시지가 나타납니다.


0

스토리 보드의 모든 막대 버튼이 평범하지 않은 것으로 설정되어 있는지 확인한 후 git 커밋을 수행하고 파생 데이터를 삭제해야합니다. 문제가 저절로 해결되지 않는 이유를 알아 내려고 영원히 보냈고 파생 된 데이터 폴더를 삭제하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.