1

我有一些視圖控制器,當我點擊一些按鈕時,我使modalView(用UINavigationController包裝)並呈現它。modalViewController委託回調 - HowTo?

DscViewController *enterDescription = [[[DscViewController alloc] init] autorelease]; 


    UINavigationController* navController = [[UINavigationController alloc] initWithRootViewController:enterDescription]; 
    [self presentModalViewController:navController animated:YES]; 
    [navController release]; 

的問題是,如何讓我的(父)視圖控制器爲代表,當我點擊在modalViewController一些按鈕(完成例如)調用的一些方法在我父母的viewController解僱模態從模態輸入中節省一些費用?

回答

1

我不認爲讓一個控制者責怪它的父控制器來做它應該處理的工作是不錯的做法。您可以隨時使用self.parentViewController解僱你目前的模式。

如果由於某種原因,你只能在parentViewController處理存儲,那麼你可以點你done按鈕操作的方法在你目前的viewController,然後用self.parentViewController來觸發父級方法進行存儲。

或只設置你的按鈕直接委託給self.parentViewController

[button addTarget:self.parentViewController action:@selector(someMethodInParentViewController) forControlEvents:UIControlEventTouchUpInside]; 
+0

我得到「無法識別的選擇發送到實例...」這個錯誤顯示的例子。當然,在我的父視圖控制器我有方法 - (無效)someMethodInPrentView – dormitkon

+0

這是因爲,我的modalViewController包裝與NavigationController – dormitkon

+0

您可以隨時通過引用您的模式viewController UINavigationViewController中包含您的根視圖控制器。您也可以使用NSNotifications,而不使用委託。 – Cyprian