2011-07-26 81 views
0

我有一個父視圖控制器,它使用presentmodalview加載一個子視圖。準確地說,這個子視圖是一個登錄頁面。iPhone應用開發 - 返回從孩子到父視圖的值

登錄頁面有兩個文本框(電子郵件和密碼)和一個「登錄」按鈕。當按下登錄按鈕時,提供數據輸入是有效的,我想將用戶詳細信息發送到根視圖控制器,然後根用戶對象將創建一個用戶對象,如果用戶存在或以其他方式顯示uialertview向用戶指示無效細節已被輸入。

在我的孩子觀點,我有以下功能鏈接到「登錄按鈕」:

-(IBAction) signIn:(NSString*)userEmail with:(NSString*)userPassword{ 
    //takes text field values and instantiates a dbConnector object to 
    //check to see if user exists - must also post uialertview if user details incorrect 
    NSString* uName = [email text]; 
    NSString* pword = [password text]; 
    userDetails = [[NSMutableArray alloc] initWithObjects:uName, pword, nil]; 
    NSLog(@"%@", userDetails); 
} 

什麼是對爲userDetails陣列傳遞迴RootViewController的按鈕被按下後,最好的方法是什麼?

的解決方案 - 協議&代表

回答

0

你需要推前必須要經過你的用戶對象或呈現另一個視圖控制器。

參照this answer。希望這個幫助。

1

在ParentViewController中創建UserDeatails數組並在ChildViewController中按下按鈕時設置它的值。

但是你必須像創建ParentViewController一樣創建對象;

ParentViewController * parentView = [[ParentViewController alloc] initWithNibName:@「ParentViewControllerName」bundle:nil];

parentView.userDeatails = userDetails_in_ChildView;

0

只是聲明一個變量到像

字符串* strUserName中您的代理文件; String * strPassword;

並創造財產和合成爲..

然後創建後您的委託的對象曾經想要這樣的地方..

NavigationBarAppDelegate *的appDelegate =(NavigationBarAppDelegate *)[[UIApplication的sharedApplication ]委託人];

appDelegate.strUsername = uName; appDelegate.strPassword = pword;

現在這個值是讓每一個war..just得到它創建委託對象像上面......

導航欄是我的應用程序的名稱。