2012-11-08 30 views
0

在我的應用程序中,我有兩個類UIViewController。的FirstViewController是具有這種方法,增加了一個的UITableView到控制器的視圖的視圖:關閉一個UIViewController,並使其他類中的UI更改

-(IBAction)SetTabState:(id)sender{ 
    if (sender == History) { 
      [self.view addSubview:HistoryView]; 
    } 
} 

現在,在SecondViewController I類有2個選擇導航回。 導航回的第一個選項是簡單地回到其正常工作:

[self dismissModalViewControllerAnimated:YES]; 

第二個選擇導航回,造就來看歷史,從SeconedViewController 所以我想是這樣的:

[self dismissModalViewControllerAnimated:YES]; 
FirstViewController *Vc = [[FirstViewController alloc]init]; 
[Vc SetTabState:Vc.History]; 

真的是,從UIViewController發射一個方法是我從來不明白的。

+1

請詳細說明您的問題。我想你想要做這樣的事情。當你第一次查看時,你應該使用tableview。是對的還是你想做其他事情? – iMash

+0

是的,但只有當我從第二個視圖控制器返回這個具體的請求 –

+1

仍然不確定你的要求,但我覺得代表和協議是你在找什麼。 – footyapps27

回答

1

您需要在解散模態之前傳遞信息。事情是這樣的:

SecondViewController.m: 
- (IBAction) secondButtonTouched:(UIButton)button { 
    FirstViewController *fVC = (FirstViewController *)self.presentingViewController; 
    [fVC SetTabState:History]; 
    [fVC dismissModalViewControllerAnimated:YES]; 
} 

你需要獲得參考現有FirstViewController,而不是創建一個新的。

注意:您應該爲SecondVC傳遞一個弱引用(或委託/協議)以引用F​​irstVC,而不是假定presentingViewController的類型爲FirstViewController。我這樣做是爲了簡化我的代碼。