2014-06-05 3 views
1

내 앱에서는 버튼 클릭으로 다른 UIViewController으로 이동해야하지만, 내가 새로 만들었을 때 UIViewController은 프로그래밍 방식으로 설정 한 것만 표시합니다.다른 ViewController로 이동

내가 사용 :

NewSubject *NewS = [[NewSubject alloc] initWithNibName:nil bundle:nil]; 
[self presentViewController:NewS animated:YES completion:nil]; 

"NewSubject" 내가 너무 갈 필요가 UIViewController이다, 그러나 나는 컴퓨터도 내가 Storyboard가 설정 한 물건을 표시 할.

+2

스토리 보드 구성을 원할 경우 스토리 보드를 사용하여보기 컨트롤러를 인스턴스화합니다. ('instantiateViewControllerWithIdentifier :') –

+0

이 링크를 사용하십시오. 희망이 있습니다. http://stackoverflow.com/questions/23102978/swrevealviewcontroller-without-using-navigationcontroller/23105142#23105142 –

답변

1

Storyboard의 NewSubject View Controller에서 세 번째 탭 (Show Identity Inspector)의 Storyboard ID를 설정 했습니까?

당신은, 일부 이름 등 "NewSubject"를 설정하고 다음과 같이 사용한다 :

NewSubject *NewS = [self.storyboard instantiateViewControllerWithIdentifier:@"NewSubject"]; 
[self.navigationController pushViewController:NewS animated:YES]; 
+0

어떻게 도움이 될까요? 그들은 빻은 종이가 아닌 스토리 보드를 사용하고 있습니다. 그래서 그들은'instantiateViewControllerWithIdentifier :' – Popeye

+0

을 사용할 필요가 있습니다. 참, 대답을 편집했습니다. 고마워요. – Alexandre

+0

'newSubject * newS = (NewSubject *) [self.storyboard instantiateViewControllerWithIdentifier : @ "NewSubject"];'newS' 변수의 소문자를 주목하십시오. 이것은 관례에 충실하고'NewSubject'에 대한 캐스트를 주목합니다. 수업. – Popeye

0

내가 컴퓨터도 나는 스토리 보드가 설정 한 물건을 표시 할.

스토리 보드를 사용하는 경우 -initWithNibName:bundle:은 잘못된 방법입니다. UIStoryboard의 -instantiateViewControllerWithIdentifier: 메서드를 사용하여 스토리 보드에 정의 된 새 뷰 컨트롤러를 만들 수 있지만 더 일반적인 방법은 단추가 두 뷰 컨트롤러 사이에서 연속되도록하는 것입니다.

이 시도 :

새로운 뷰 컨트롤러에 버튼에서 스토리 보드, 컨트롤 키를 누른 상태에서 드래그를 편집하는 동안. 보기 컨트롤러 사이의 전환 방법 (예 : 새 컨트롤러를 탐색 스택의 맨 위로 밀어 넣기), 모달 (보기 컨트롤러를 모달로 표시) 등을 선택하는 팝업 메뉴가 나타납니다. 적절한 것을 선택하십시오 .

단순한 경우 완료되었습니다. 전환이 발생하기 위해 코드를 작성할 필요가 없습니다. Segue는 새로운 View Controller를 생성하고 사용자를 위해 전환을 수행합니다. 그러나 기존보기 컨트롤러의 데이터를 새보기 컨트롤러로 전달하려는 경우가 있습니다. 그렇다면 기존보기 컨트롤러에 -prepareForSegue:sender:을 구현하십시오.이 방법을 사용하면 필요한 모든 데이터를 전달할 수 있습니다.

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    // It doesn't hurt to check that it's the segue that you expect 
    if ([segue.identifier isEqualToString:@"MySegueIdentifier"]) { 
     NewViewController *newVC = segue.destinationViewController; 
     // This is your chance to set properties or call methods to pass data to the new view controller 
     newVC.foo = self.foo; 
     newVC.bar = self.bar; 
    } 
} 
관련 문제