2013-01-10 53 views
1

我的項目在iOS6.I在我的iPhone故事板上有三個UIViewControllers。在第一個UIVC上,我有一個複選框和一個繼續按鈕。如果複選框被選中並且按鈕被點擊,那麼我必須啓動第二個UIViewController。如果複選框未被選中並且按鈕被單擊,則啓動第三個UiViewController。我該怎麼做?到目前爲止,我已經做到了這一點:在iOS中點擊按鈕啓動不同的ViewControllers

- (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,並從兩個輸出中獲得輸出。第二個和第三個UIViewController上都有一些內容,如按鈕,標籤等,但它們顯示爲黑色。沒有內容。我有兩個後退按鈕,我可以從其中一個回溯到第一個UIVC。所以我錯過了什麼?我使用了塞納斯賽車,我必須去特定的UIVC。現在我可以選擇第二或第三。我應該怎麼做?如果您需要更多信息,請告訴我。謝謝。

回答

1

要出示ViewControllers,在你的故事板,按照此:

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你不能這樣做,一個按鈕只能採取一個賽段。因此,解決方案要麼像您所建議的那樣,要麼根據我的回答放棄故事板並使用xib。 – foundry

+0

@RyanG。謝謝。這解決了我的問題。是的,我通常使用故事板和segues,但這是不同的。我不得不啓動任何一個ViewControllers。所以這對我來說是新的。 – RookieAppler

0

您已經創建了您的VC,但它們未鏈接到故事板ITMOrderedItemsVC和ITMShippingAddressVC。所以你在故事板中添加的界面不會被加載。

你可以做的是爲每個VC(New> file ...> User Interface> View)創建一個單獨的xib文件。命名XIB文件相同,您的viewController:

ITMOrderedItemsVC.xib 
ITMShippingAddressVC.xib 

設計產品界面中這些XIB文件(它們就像是單一實體故事板)。

當你的init是相應viewController的一個實例時,xibs會自動加載。

這將適用於您當前的代碼。

+0

謝謝。我用RyanG解決方案,它爲我工作。我以前從未使用xibs。我第一次潛入iOS是iOS6。所以我採用了這個解決方案。但我也會探索你的選擇。 – RookieAppler