2014-09-04 3 views
-1

이미지에서 볼 수 있듯이 정상적인 경우에는 button1을 클릭하여 두 번째보기를 호출 한 다음 button2를 클릭하여 마지막보기를 호출하고 특정 시나리오에서 button1을 클릭하여 마지막보기를 호출하려고합니다 . 나는 메도의 viewDidLoad에 추가 :View Controller를 관련 View Controller에서 프로그래밍 방식으로 호출하는 방법은 무엇입니까?

if(condition) 
    [self performSegueWithIdentifier:@"thirdview" sender:self]; 

을하지만 작동하지 않는, 어떤 도움 바랍니다.

감사합니다. enter image description here

답변

3

ViewController1에서 Viewcontroller3까지의 세그먼트를 추가해야합니다.

그러나 많은 viewController에서이 작업을 수행하는 경우 지저분 해지고, 나는 이것을 spaguetti segues라고 부릅니다.

대안은 모달로 viewController을 제시하는 것입니다.

예 :

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil]; 
ViewController3 *viewController = 
     [storyboard instantiateViewControllerWithIdentifier:@"viewController"]; 
[self presentViewController:viewController animated:YES completion:nil]; 

(당신이 ViewController3에게 storyboardId를 제공해야합니다)

+1

나는이 답변에 동의합니다. 스토리 보드 ID로보기를로드하는 것은이 독특한 경우를 처리하는 깔끔한 방법입니다. Ui 요소는 하나 이상의 segue를 가질 수 있다고 생각하지 않습니다. –

관련 문제