【问题标题】:iPhone App Dev - Return Values From Child To Parent ViewiPhone App Dev - 从子视图返回值到父视图
【发布时间】:2011-07-26 19:52:07
【问题描述】:

我有一个父视图控制器,它使用 presentmodalview 加载子视图。准确地说,这个子视图是一个登录页面。

登录页面有两个文本字段(电子邮件和密码)和一个“登录”按钮。当按下登录按钮时,如果数据输入是有效的,我想将用户详细信息发送到根视图控制器,如果用户存在或以其他方式向用户显示无效详细信息,则该控制器将创建一个用户对象已输入。

在我的子视图中,我将以下功能链接到“登录按钮”:

-(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 的最佳方法是什么?

解决方案 - 协议和委托

【问题讨论】:

    标签: iphone objective-c xcode


    【解决方案1】:

    在 ParentViewController 中创建 UserDeatails 数组,并在 ChildViewController 中按下按钮时设置其值。

    但是你必须像这样创建 ParentViewController 的对象;

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

    parentView.userDeatails = userDetails_in_ChildView;

    【讨论】:

      【解决方案2】:

      您需要在推送或呈现另一个视图控制器之前传递您的用户对象。

      请参考 this answer。希望对您有所帮助。

      【讨论】:

        【解决方案3】:

        只需在您的委托文件中声明一个变量,如

        字符串 *strUsername; 字符串 *strPassword;

        并且还为此创建属性和合成..

        然后在你想要的任何地方创建一个委托对象之后......

        NavigationBarAppDelegate *appDelegate= (NavigationBarAppDelegate *)[[UIApplication sharedApplication] delegate];

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

        现在这个值是获取每场战争......只需像上面一样创建委托对象......

        NavigationBar 是我的应用程序的名称。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多