2013-01-10 6 views
1

내 프로젝트는 iOS6입니다. 내 iPhone 스토리 보드에 세 개의 UIViewController가 있습니다. 첫 번째 UIVC에는 체크 박스와 계속 버튼이 있습니다. 확인란을 선택하고 버튼을 클릭하면 두 번째 UIViewController.If 확인란을 선택 취소하고 버튼을 클릭하여 세 번째 UiViewController를 실행해야합니다. 어떻게해야합니까? 지금까지 이런 짓을했는지 :iOS에서 버튼 클릭시 다른 ViewController 시작

- (IBAction)btnContinue:(UIButton *)sender 
{ 
if (self.shipToDifferentAddress)//Checkbox CLICKED->YES 
{ 
    //Launch ShippingVC 
    ITMShippingAddressVC *shippingVC = [[ITMShippingAddressVC alloc]init]; 
    [[self navigationController]pushViewController:shippingVC animated:YES]; 
} 
else //Checkbox unchecked ->NO 
{ 
    //Launch OrderedItemsVC 
    ITMOrderedItemsVC *orderedVC = [[ITMOrderedItemsVC alloc]init]; 
    [[self navigationController]pushViewController:orderedVC animated:YES]; 
} 
} 

self.shipToDifferentAddress은 부울 변수 이야기의 시작이 또는이다. 두 viewDidLoads 모두 기록한 및 그들 모두에서 출력 있어요. 거기에 두 번째 및 세 번째 UIViewControllers 단추, 레이블 등 같은 일부 내용이 있습니다.하지만 그들은 검은 색으로 나타납니다. 아무 콘텐츠. 나는 그 둘 모두에 뒤로 버튼을 가지고 있으며 그 중 하나에서 첫 번째 UIVC로 되돌아 갈 수 있습니다. 그래서 나는 무엇을 놓치고 있습니까? 저는 특정 UIVC에 가야만했던 부분을 사용했습니다. 이제 나는 두 번째 또는 세 번째 중 하나를 선택할 수 있습니다. 어떻게해야합니까? 더 자세한 정보가 필요하면 알려주십시오. 감사.

답변

1

이를 수행

UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" 
                  bundle: nil]; 
    ITMShippingAddressVC *viewController = (ITMShippingAddressVC*)[mainStoryboard 
                     instantiateViewControllerWithIdentifier: @"ITMShippingAddressVC"]; 

는보기를 클릭 .. 스토리 보드에 식별자를 설정, 오른쪽 속성 메뉴에서 스토리 보드 ID enter image description here

설정

당신이 정상처럼 밀어 수있는 것보다 :

[[self navigationController]pushViewController:viewController animated:YES]; 

을이 너와 위해 작동하지만 스토리 보드를 사용하는 경우, IDE 당신은 Segues를 사용하고 싶습니다. 훨씬 적은 코드가 필요합니다. Here is a good tutorial segues를 사용하여 뷰 컨트롤러를 밀어 넣거나 표시하고 이들 사이에서 데이터를 전달합니다.

+0

당신의 대답은 나의 보완적인 이상입니다. 그러나 Phanindar는 다른 조건에 따라 두 버튼 중 하나를 수행하는 버튼을 원합니다. AFAIK 당신은 그것을 할 수 없어, 버튼은 단 하나의 segue 걸릴 수 있습니다. 그래서 해결책은 당신이 제안하거나, 스토리 보드를 사용하지 않고 제 답변대로 xib를 사용하는 것입니다. – foundry

+0

@ RyanG. 고맙습니다. 그게 내 문제를 해결해 줬어. 예, 저는 보통 스토리 보드와 단편을 사용하지만 이것은 다릅니다. ViewController 중 하나를 시작해야했습니다. 그래서 그것은 나를 위해 새 것이 었습니다. – RookieAppler

0

VC를 만들었지 만 스토리 보드 ITMOrderedItemsVC 및 ITMShippingAddressVC에 연결되지 않았습니다. 따라서 스토리 보드에 추가 한 인터페이스가로드되지 않습니다.

각 VC에 대해 별도의 xib 파일을 만들면됩니다 (새로 만들기> 파일 ...> 사용자 인터페이스>보기).

ITMOrderedItemsVC.xib 
ITMShippingAddressVC.xib 

이 XIB 파일에 인터페이스 디자인 (그들은 단지 하나의 엔티티 스토리 보드처럼) : 당신의 ViewController와 동일 XIB 파일 이름을 지정합니다.

init 각각의 viewController 인스턴스가 xib에 자동으로로드됩니다.

이것은 현재 코드에서 작동합니다. 스토리 보드에있는 당신의 ViewControllers을 제시

+0

감사합니다. RyanG 솔루션을 사용했고 저에게 도움이되었습니다. 전에 xib을 사용한 적이 없습니다. ios 로의 첫 번째 다이빙은 iOS6입니다. 그래서 나는 그 해결책을 찾아 갔다. 그러나 나는 또한 당신의 선택을 탐구 할 것이다. – RookieAppler