programing

스토리보드에 식별자가 있는 뷰 컨트롤러가 없습니다.

bestprogram 2023. 4. 12. 23:06

스토리보드에 식별자가 있는 뷰 컨트롤러가 없습니다.

다음 오류가 계속 발생합니다.

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];
}

이 the the i i i i 。identifier UIStoryboard이 에러는 아직 표시됩니다.

여기에 이미지 설명 입력


향후 참조를 위해:

스토리보드를 사용하여 iOS6를 개발하고 있습니다.

같은 문제가 발생했는데 인스펙터에서 "Identifier" 필드를 찾을 수 없었습니다.대신 "Storyboard ID" 필드를 식별자 이름으로 설정합니다.이 필드는 인스펙터의 [Show the Identity Inspector]탭에 있습니다.

[주의 - 아래 댓글은 일부 사용자가 인스펙터의 스토리보드 ID 바로 아래에 있는 "Restore ID" 필드를 설정할 필요가 있음을 나타냅니다.[스토리보드 ID 사용]를 클릭하는 것만으로는 충분하지 않은 것 같습니다.

이미지가 있습니다. (이는 제 를 학급과 했습니다.)여기에 이미지 설명 입력

Xcode 7 - 13에서는

스토리보드 아이디를 변경해서 이런 오류가 발생하면

프로젝트를 정리하기만 하면 됩니다(+)CMDSHIFTK

let storyboard = UIStoryboard(name: "StoryboardFileName", bundle: nil)
let controller = storyboard.instantiateViewController(withIdentifier: "StoryboardID")
self.present(controller, animated: true, completion: nil)

주의:

  • "StoryboardFileName"는 스토리보드의 파일명이며 스토리보드의 ID가 아닙니다.
  • "StoryboardID"는 해당 스토리보드의 ID 인스펙터에서 수동으로 설정한 ID입니다(아래 스크린샷 참조).

스토리보드 ID

첫 번째가 스토리보드 ID이고 두 번째가 View Controller 클래스 이름이라고 생각하는 경우가 있으므로 차이점에 유의하십시오.

수정 완료! segue의 식별자(Driving Details)뿐만 아니라 tableViewController의 식별자도 Driving Details로 설정해야 합니다.내 사진 확인:

여기에 이미지 설명 입력

네비게이션 뷰컨트롤러도 분리하여 테이블뷰컨트롤러 2개를 '밀어서' 애니메이션으로 직접 연결합니다.

****XCODE 7.0용 편집********

storyboardId를 설정해야 합니다(이 경우 viewController는 네비게이션컨트롤러에 내장되어 있습니다).

let lastMinVc  = mainStoryBoard.instantiateViewControllerWithIdentifier("lastMinuteNavController") as! UINavigationController

여기에 이미지 설명 입력

Identity Inspector Xcode 6.3용 스토리보드 ID.스토리보드 아이디를 사용하세요. 여기에 이미지 설명 입력

스토리보드에 새로운 VC를 추가한 후 이 문제가 발생했지만 시뮬레이터가 아닌 디바이스에서만 발생하였습니다.여러 스토리보드의 현지화에 의한 것으로 판명되었습니다.VC는 프라이머리에만 추가되었습니다.다른 현지화(iPhone에서 사용하는 현지화 중 하나)를 삭제하려고 했지만 아직 오류가 발생했습니다.결국 저는 각각의 새로운 VC를 사용하여 다른 현지화를 다시 작성해야 했습니다.

컴파일러에 다음 오류가 나타난다.

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 및 업업 file file file file we we we we we we we we we we we we we we we we we we we we we we is is is is 。bundle는, 보드가 「 」의 「 」의 「 」의 「 」의 「 」의 「 」의 「 」)을 합니다.mainBundle를 참조해 주세요.

@Ravi Bhanushali와 같은 문제가 있는 사용자를 위해 Swift 4 솔루션을 다음에 제시합니다.

let storyboard = UIStoryboard(name: "Main", bundle: Bundle.main)

내가 찾았어...스토리보드의 뷰 컨트롤러를 클릭하여 VC 속성 인스펙터의 왼쪽에서 세 번째 아이콘을 클릭합니다.이 화면에서 콜명을 설정하면, 「표시」라고 표시됩니다.내 것은 숨겨져 있었습니다.아이덴티티라는 단어를 클릭하면 스토리보드가 표시됩니다.ID - 코드에서 식별자를 추가합니다.

ID 검사기(왼쪽 세 번째 아이콘)에서 "Storyboard ID"를 수정하면 됩니다.

오타가 없는 것이 확실하다면 프로젝트(「제품」->「클린」)를 청소하거나, 커맨드+시프트+K 를 사용해 주세요.

적절한 뷰 컨트롤러를 선택하지 않은 식별자를 입력하는 동안 한 번만 확인하면 절차를 다시 수행합니다.

뷰 컨트롤러 중 몇 개에 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">

나도 같은 문제에 직면해 있었다.식별자를 알려줬는데 컴파일러가 문제를 일으키고 있어서 새로운 컨트롤러를 만들고 그 컨트롤러에 새 ID를 부여하고 추가했는데 완벽하게 작동하고 있어요!팟도 추가했는데 왜 오류가 발생했는지 알 수 없지만 지금은 사라졌습니다!또한 CMD+SHIFT+K 키를 눌러 프로젝트를 정리합니다.효과가 있었는지 내게 알려줘.

같은 에러가 발생했기 때문에, 프로젝트의 다음의 변경을 실시해 이것을 수정할 수 있었습니다.인스펙터 패널에 제 클래스 이름을 언급하면 문제가 해결됩니다.커스텀 클래스 섹션의 ID 인스펙터 오른쪽 패널

클래스: 클래스 이름(ViewController)

ID 섹션 스토리보드 ID: 스토리보드 ID(viewController Name)

그런 다음 저기 있는 스토리보드 ID 사용 옵션을 클릭합니다.문제는 이것으로 끝입니다.도움이 됐으면 좋겠는데...

식별자(@"driving Details")를 스토리보드 ID로 사용합니다.

매우 간단합니다. 메인 스토리 보드에서 각각의 뷰 컨트롤러를 선택하고 스토리 보드를 확인합니다.ID(현재 ID에서 ID를 사용하고 있는 경우)를 지정하여 사용합니다.

여기 나의 첫 번째 것은 스토리보드이다.ID는 vc = self.storyboard?instantiateViewController(식별자: "firstone")as! 탭바뷰컨트롤러

위의 해결책을 모두 시도해 봤지만 효과가 없었습니다.

내가 한 일은:

  • 프로젝트 클린
  • 파생 데이터 삭제
  • Xcode 재시작
  • 스토리보드에 다시 들어갑니다.이전 답변에 표시된 ID(IB 내부).

그리고 효과가 있었어충격적인 것은 인터페이스 빌더에서 Storyboar ID를 입력했는데 Xcode를 다시 열어보니 삭제/삭제 되었습니다.

이게 도움이 됐으면 좋겠네요.

모든 것을 청소하고 X코드를 닫아도 문제가 해결되지 않습니다.

viewController를 삭제하고 새 ID를 사용하여 새 viewController를 생성해야 했습니다.

주의: 프로젝트에서 cociod를 사용하는 경우 먼저 실행하세요.pod deintegrate그리고.rm Podfile.lock

그런 다음 VSCode와 같은 타사 코드 편집기에서 프로젝트 폴더를 열고 ViewController 이름을 글로벌 검색하여 오류를 발생시킵니다.

  1. 잘못된 이름이 발견되면 이름을 바꾸거나 수정합니다.
  2. 모든 변경 내용을 저장합니다.
  3. 프로젝트를 청소하고 구축합니다.

이제 모든 게 잘 될 거예요.

이 문제는 Xcode 내에서 파일 이름을 변경할 때 가장 많이 발생합니다.

언어 체크, 컨트롤러의 베이스가 될 수 있지만 특정 스토리보드에 컨트롤러가 없을 수 있습니다.

XCODE 드래그 앤 드롭 페인이 사라졌습니다!!!

여기에 이미지 설명 입력 여기에 이미지 설명 입력

언급URL : https://stackoverflow.com/questions/8295471/storyboard-doesnt-contain-a-view-controller-with-identifier