0

我有一个登录屏幕,用户在其中输入电子邮件 ID。当用户登录并转到其他视图控制器时,我需要将电子邮件 ID 传递给NSDictionary我在另一个视图控制器中提到的对象。

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys: @"abc@xyz.com", @"EmailID", @"http://www.yahoo.com", @"URL", @"344", @"Phone", @"", @"UserID", nil];

如果我替换@"abc@xyz.com"为 [NSString stringWithFormat:@"@", firstViewControllerObject.emailIdTextField.text]并尝试在日志中获取输出,我会得到一个空值。

如何将用户输入的电子邮件ID传递给NSDictionary对象并获取日志中的值?

使用 Xcode 4.6 而我没有使用故事板。XIB在我的项目中使用。

4

5 回答 5

1

我相信问题出在格式字符串上。我想你忘记了“%”符号。尝试以下操作:

[NSString stringWithFormat:@"%@", firstViewControllerObject.emailIdTextField.text]

希望这可以帮助!

于 2013-08-22T05:50:20.407 回答
1

正如我在评论中所说,[NSString stringWithFormat]当参数什么都不做时使用是没有意义的"%@",所以只需这样做:

NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
    firstViewControllerObject.emailIdTextField.text ... ];
于 2013-08-22T06:01:24.513 回答
0

似乎anotherViewController逻辑上需要 email 属性,并且firstViewController拥有anotherViewController. 所以我认为你可以创建anotherViewController一个名为 的属性,email并在创建.fistViewControlleremailviewController

于 2013-08-22T06:42:12.417 回答
0

我有两个解决方案给你...

假设您的两个视图是FirstViewControllerSecondViewController

  1. 只需在SecondViewController调用中定义一个属性emailID,当用户登录时,您正在启动时使用电子邮件 ID 中的字符串值SecondViewController设置该属性。emailIDtextField

  2. 您也可以编写自己的protocol来实现Delegation设置电子邮件。

于 2013-08-22T06:58:55.403 回答
0

为了让您的其他视图控制器(我们称之为otherViewController)访问该字段,otherViewController需要“拥有”该firstViewControllerObject对象。即firstViewControllerObject对象需要从内部实例化otherViewController。就您的应用程序中的事物顺序而言,您otherViewController应该首先实例化,然后在其中firstViewControllerObject实例化并呈现presentViewController:animated:completion:.

于 2013-08-22T05:57:52.207 回答