我有一个登录屏幕,用户输入电子邮件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
。
答案 0 :(得分:1)
我认为问题是格式字符串。我想你忘记了“%”的标志。请尝试以下方法:
[NSString stringWithFormat:@"%@", firstViewControllerObject.emailIdTextField.text]
希望这有帮助!
答案 1 :(得分:1)
正如我在评论中所述,当论证为[NSString stringWithFormat]
时,使用"%@"
是没有意义的,因为它什么都不做,所以只需这样做:
NSDictionary *dictionary = [NSDictionary dictionaryWithObjectsAndKeys:
firstViewControllerObject.emailIdTextField.text ... ];
答案 2 :(得分:0)
对于您的其他视图控制器(我们称之为otherViewController
)来访问该字段,otherViewController
需要“拥有”firstViewControllerObject
对象。即firstViewControllerObject
对象需要在otherViewController
内实例化。
就您的应用中的事物顺序而言,应首先实例化otherViewController
,并在其中firstViewControllerObject
实例化并显示presentViewController:animated:completion:
。
答案 3 :(得分:0)
似乎anotherViewController
逻辑上需要电子邮件属性,而firstViewController
拥有anotherViewController
。
因此,我认为您可以将anotherViewController
设为名为email
的属性,并让fistViewController
在创建email
时将viewController
传递给它。
答案 4 :(得分:0)
我心里有两个解决方案......
说你的两个观点是FirstViewController
和SecondViewController
。
只需在名为SecondViewController
的{{1}}中定义一个属性,当用户登录时,您正在启动emailID
,并使用字符串设置SecondViewController
属性电子邮件ID emailID
中的值。
您也可以编写自己的textField
来实现protocol
设置电子邮件。