2015-05-22 105 views
0

我正在嘗試使用UINavigationViewController編寫應用程序。我的第一個屏幕上有幾個按鈕,點擊每個按鈕後,我想繼續使用UIViewController。我知道我可以在每個按鈕上添加一個segue,全部指向我想要去的UIViewController,但我想知道是否可以只使用一個可以從每個按鈕觸發的segue。從幾個按鈕的屏幕來看?

如果這是不可能的,我想知道是否有可能從第一個UIViewController打開第二個UIViewController,點擊按鈕,並提供一個像UINavigationView提供的後退按鈕。除了後退按鈕之外,我確實設法讓這個想法的所有內容都能正常工作。我的意思是我可以在屏幕上的某處放置一個標準按鈕並返回,但是我想要UINavigationView上的標準後退按鈕。

唷!我不確定這是否有道理。

我知道我也可以使用tableview,但我試圖用按鈕來設置它。

謝謝

編輯:謝謝大家的回答。我現在有這個工作。我會投票的答案,但我沒有足夠的職位來做到這一點。我很欣賞答案!

+0

是的,這是可能的 – Boid

回答

0

鏈路的每個按鈕,一個單一的動作(例如buttonClick)在視圖控制器,然後在self.navigationController

-(IBAction)buttonClick:(id)sender { 
if(sender.id == self.button1) { 
    DestinationViewController *vc = [[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]] instantiateViewControllerWithIdentifier:@"VC_IDENTIFIER"]; 
    [self.navigationController pushViewController:vc animated:YES]; 
} 

執行使用pushViewController方法適當SEGUE或者,如果你已經有了,在故事板定義1個SEGUE你可以使用

[self performSegueWithIdentifier:@"SegueIdentifier" sender:self]; 

並使用buttonClick方法。使用第一個示例或第二個示例,只要您在故事板中設置的segue是推式,那麼您應該已經獲得後退按鈕,因爲這是將視圖控制器推入導航堆棧的默認行爲。

1

如果您需要爲每個按鈕設置不同的操作功能,建議您從主控制器切換到另一個控制器並創建一個segue標識符(請參閱下面的xcode過程);然後,從每個按鈕操作函數中使用performSegueWithIdentifier。你也可以利用prepareForSegue。要創建漸變,請從控制器中的左側按鈕拖動到故事板中的控制器,然後拖動到要繼續播放的控制器並選擇放映。

檢查迅速,我沒有在一個非常類似的問題示例代碼,從而可以參照

Linking View Controllers through button

您可以嵌入主控制器的導航控制器,並且會給你導航能力背部。如果你有多個圖層,你也可以使用unwind segue。