2013-02-14 21 views
2

在所有視圖控制器我present a ModalViewController後,我關閉模式視圖控制器我想調用當前視圖控制器中的方法。IOS如何調用ViewController中的方法,如果模式被解僱

我必須presentModalViewController我不能推它,因爲它是一個表單。由於我無法推送它(void)viewDidAppear:(BOOL)animated不會在我解僱表格時調用。

Btw表單是一個設置菜單,我必須在每個視圖控制器中調用它,所以我不能使用通知,因爲有超過20個視圖控制器和只有一個設置菜單;

Navigation controller -> Root- > VC1 - > VC2 - > VC3 ->VC4........... VC20...... 
            |  |  |  |    | 
           Menu Menu Menu Menu   Menu 

我現在菜單:

UIStoryboard* sb = [UIStoryboard storyboardWithName:@"MainStoryboard" 
               bundle:nil]; 
SettingsListViewController *settingsVC = [sb instantiateViewControllerWithIdentifier:@"SettingsListViewController"]; 
UINavigationController *modalViewNavController= [[UINavigationController alloc] initWithRootViewController:settingsVC]; 
modalViewNavController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
modalViewNavController.modalPresentationStyle = UIModalPresentationFormSheet; 
[self presentModalViewController:modalViewNavController animated:YES]; 

我駁回:

//dissmiss view 
[self.navigationController dismissModalViewControllerAnimated:YES] ; 

在視圖控制器我想打電話; [self.navigationController popToRootViewControllerAnimated:NO];

當表單被解僱時,有沒有辦法在View Controller中調用方法?

+0

你能否使用NSNotificationCenter? – Nirav 2013-02-14 20:19:06

+0

@Nirav有超過20個VC和只有一個表單控制器我怎麼能呼叫通知中心?首先,我需要現在哪個VC提交表單然後發送該VC的具體通知,這是不安靜的容易 – 2013-02-14 20:51:19

回答

-1

您可以設置modalViewController.parentViewController = self;,然後用它從這樣的模式視圖控制器如果你想之前發送郵件辭退工作:

- (void)viewWillDisappear:(BOOL)animated { 
    [self.parentViewController doSomething]; 
} 
+2

'modalViewNavController.parentViewController = self;'說錯誤分配只讀屬性 – 2013-02-14 21:03:42

+0

ViewDidDisappear可以調用沒有你的看法被解僱(例如,啓動相機隱藏您的視圖,但照片拍攝後恢復)。 – 2014-04-15 06:26:05

1

由於iOS 5中,您可以使用每UIViewControllerpresentingViewController屬性,查看1)如果他們首先以模態方式呈現,2)那麼他們是以模態方式呈現他們。因此,如果您通過調用[self.navigationController presentModalViewController:modalViewNavController animated:YES]來呈現表單表單,則呈現視圖控制器將成爲根引導控制器,並且您可以在解除模態表示的同時告訴它彈出到根目錄。

順便說一句,在每個視圖控制器中還有一個storyboard屬性,這個屬性來自一個故事板,所以當按名稱實例化新的故事板視圖控制器時,您可以直接使用該屬性。

1

製作你自己的委託並設置視圖控制器,將視圖顯示爲委託......並在modalVC即將被解散時調用。

相關問題