스토리 보드-식별자가있는 뷰 컨트롤러를 포함하지 않습니다
다음과 같은 오류가 계속 발생합니다.
Storyboard (<UIStoryboard: 0x7ebdd20>) doesn't contain a view controller
with identifier 'drivingDetails'
이것은 코드입니다.
- (void)tableView:(UITableView *)tableView
didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"drivingDetails"];
controller.title = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"name"];
[self.navigationController pushViewController:controller animated:YES];
}
난 이미 설정 한 identifier
온 UIStoryboard
하지만, 난 여전히이 오류를 받고 있어요.
나중에 참조하기 위해 :
스토리 보드를 사용하여 iOS 6에서 개발 중입니다.
같은 문제가 발생했지만 검사기에서 "식별자"필드를 찾을 수 없습니다. 대신 "Storyboard ID"라는 필드를 식별자 이름으로 설정하십시오. 이 필드는 속성의 "ID 속성 표시"탭에서 찾을 수 있습니다.
[참고-아래 의견은 일부 사람들이 관리자의 스토리 보드 ID 바로 아래에 "복원 ID"필드를 설정해야한다는 것을 발견했습니다. "스토리 보드 ID 사용"을 클릭하는 것만으로는 충분하지 않습니다.]
참조를 위해 아래 이미지가 있습니다 (이 경우 식별자를 클래스와 동일하게 지정했습니다)
에서 XCODE 7 | 8 | 9 ,
스토리 보드 ID를 변경하고 이와 같은 오류가 발생하면
단지 CLEAN 프로젝트 ( CMD + 시프트 + K )
결정된! 내 경우 DrivingDetails의 경우 segue의 식별자뿐만 아니라 tableViewController의 식별자도 DrivingDetails로 설정해야합니다 ... 사진을 확인하십시오.
또한 내비게이션 뷰 컨트롤러를 제거하여 이제 2 개의 테이블 뷰 컨트롤러가 "푸시"애니메이션과 직접 연결되었습니다.
***** XCODE 7.0 편집 *****
storyboardId를 설정해야합니다 (이 경우 viewController가 Navigation 컨트롤러에 임베드 됨).
let lastMinVc = mainStoryBoard.instantiateViewControllerWithIdentifier("lastMinuteNavController") as! UINavigationController
때로는 용어 사이에 혼란이 있습니다.
// Swift 4
let storyboard = UIStoryboard(name: "StoryboardFileName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "StoryboardID")
self.present(controller, animated: true, completion: nil)
참고 "StoryboardFileName"
는 IS 파일 이름 스토리 보드의 아닌 ID, "StoryboardID"
실제로입니다 수동으로 신원 관리자에서 설정 한 ID . 때로는 사람들이 둘 사이의 차이점에 대해 혼란스러워합니다. 첫 번째는 실제로 StoryboardID이고 두 번째는 ViewController 클래스 이름이라고 생각합니다.
Identity Inspector 탭에 Xcode 6.3.2의 Storyboard ID라는 이름이 있고 Storyboard ID 사용 옵션이 선택되어 있습니다.
스토리 보드에 새 VC를 추가 한 후 시뮬레이터가 아닌 장치에서만이 문제가 발생했습니다. 여러 스토리 보드 현지화가 있었기 때문에 VC가 기본 스토리 보드에만 추가되었습니다. 다른 현지화를 제거하려고 시도했지만 그중 하나는 내 iPhone에서 사용되는 것입니다. 결국 나는 다른 언어 버전 재현했다 와 그들 각각의 새로운 VC합니다.
나는 그것을 발견했다 ... 스토리 보드에서보기 컨트롤러를 클릭하고 vc 속성 관리자에서 왼쪽에서 세 번째 아이콘을 클릭하십시오-scereen에서 통화 이름을 설정 한 아이콘은 '신분'이라고 표시됩니다. identity라는 단어를 클릭하면 storyboardID가 표시됩니다-코드에서 식별자를 추가하십시오.
신원 관리자 (왼쪽의 세 번째 아이콘)에서 "스토리 보드 ID"를 수정하면 작동합니다.
그렇지 않은 경우 오타가없는 것이 확실하면 프로젝트를 정리하십시오 ( "제품"-> "청소"또는 단순히 command + shift + K).
컴파일러는 다음과 같은 오류를 보여줍니다.
Terminating app due to uncaught exception 'NSInvalidArgumentException',
reason: 'Storyboard (<UIStoryboard: 0x7fedf2d5c9a0>) doesn't contain a
ViewController with identifier 'SBAddEmployeeVC''
여기서 생성 된 스토리 보드의 객체는 ViewController를 포함하는 메인 스토리 보드가 아닙니다. 으로 스토리 보드 파일에 있는 우리의 작업으로 이름 Main.storyboard . 따라서 Main.storyboard 의 객체에 대한 참조가 필요합니다 .
다음 코드를 사용하십시오.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
다음 storyboardWithName
은 작업중인 스토리 보드 파일의 이름이며 스토리 보드가 bundle
있는 번들을 지정합니다 (예 :) mainBundle
.
@Ravi Bhanushali와 동일한 문제를 가진 사람들을 위해 Swift 4 솔루션이 있습니다.
let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)
내 뷰 컨트롤러 중 storyboardIdentifier 속성 이 누락되었습니다 .
전에:
<viewController
id="pka-il-u5E"
customClass="YourViewControllerName"
customModule="ModuleName"
customModuleProvider="target"
sceneMemberID="viewController">
후:
<viewController
storyboardIdentifier="YourViewControllerName" <----
id="pka-il-u5E"
customClass="YourViewControllerName"
customModule="ModuleName"
customModuleProvider="target"
sceneMemberID="viewController">
식별자를 입력하는 동안 적절한 뷰 컨트롤러를 선택하지 않은 상태에서 절차를 한 번 더 반복하면 확인하십시오.
동일한 오류가 발생하여 프로젝트에서 다음 변경 사항을 변경하여이 문제를 해결할 수 있습니다. 관리자 패널에서 클래스 이름을 언급 한 후 문제가 해결되었습니다. 이동-> 오른쪽 패널 Identity Inspector 사용자 정의 클래스 섹션에서
클래스 : 클래스 이름 (ViewController)
ID 섹션 스토리 보드 ID : 스토리 보드 ID (viewController 이름)
스토리 보드 ID 사용 옵션을 클릭하면 문제가 해결 된 것입니다. 나는 그것이 당신을 도울 것입니다 ....
스토리 보드 ID로 식별자 (@ "drivingDetails")를 사용하십시오.
메인 스토리 보드에서 각각의 뷰 컨트롤러를 선택하고 스토리 보드 ID가 현재 이름을 가진 식별자에서 사용하고 있는지 확인하는 것은 매우 간단합니다.
여기 내 firstone은 storyboardID let vc = self.storyboard? .instantiateViewController (withIdentifier : "firstone")입니다! tabBarViewController
위의 모든 해결책을 시도했지만 아무도 효과가 없었습니다.
내가 한 일은 :
- 프로젝트 청소
- 파생 데이터 삭제
- Xcode 재시작
- 이전 답변 (IB 내부)에 표시된 StoryboardID를 다시 입력하십시오.
그리고는 효과가있었습니다. 충격적인 것은 인터페이스 빌더에서 Storyboar ID를 입력했으며 Xcode를 다시 연 후에 제거 / 삭제되었다는 것입니다.
이것이 누군가를 돕기를 바랍니다.
모든 것을 청소하고 Xcode를 닫아도 문제가 해결되지 않았습니다.
viewController를 삭제하고 새로운 식별자로 새로운 것을 만들어야했습니다.
XCODE DRAG N DROP PANE IS GONE !!!
'development' 카테고리의 다른 글
LINQ를 사용하여 목록에서 중복 항목을 얻는 방법은 무엇입니까? (0) | 2020.05.26 |
---|---|
JavaScript : 클라이언트 측과 서버 측 유효성 검사 (0) | 2020.05.26 |
SQL RANK () 대 ROW_NUMBER () (0) | 2020.05.26 |
Java에서 (a == 1 && a == 2 && a == 3)을 true로 평가할 수 있습니까? (0) | 2020.05.26 |
libc ++ abi.dylib : NSException (lldb) 유형의 포착되지 않은 예외로 종료 (1) | 2020.05.26 |