我是Objective C的新手并且有一个非常基本的问题。所以我在一个UIViewController中有2个变量(IBOutlets是UITextFields)。在用户将文本输入到那些UITextFields之后,他/她继续进入新的viewcontroller。当用户输入viewcontroller#2时,我想将来自viewcontroller#1的IBOutlets的值插入到我预设的NSString中。例如,1个变量是名称,1个是兴趣。 NSString应该是“Hello [name],感谢您对[兴趣]的兴趣。我们很感激。”那么如何将IBOutlets从viewcontroller 1传递给viewcontroller 2,并将它们作为NSStrings插入到不可变的NSString中(感谢您的兴趣等等部分)。我感谢您提供的任何帮助,因为我是一个完整的Objective C新手。感谢您花时间阅读本文。
-Reynold
答案 0 :(得分:1)
这实际上是一个两部分问题。为了按照你想要的方式把这些字符串放在一起,我建议:
[NSString stringWithFormat:FORMAT];
在你的情况下,实现可能会有点像这样:
NSString *name = nameTextField.text;
NSString *interest = interestTextField.text;
NSString *resultString = [NSString stringWithFormat:@"Hello %@, thanks for your interest in %@. We appreciate it",
name,
interest];
将此值传递给另一个视图控制器有点复杂。我建议在第二个视图控制器中创建一个属性,如下所示:
@interface ViewController2 : UIViewController{
NSString *myString;
}
@property(nonatomic, retain) NSString *myString;
@end
然后,当您设置新的视图控制器时,您可以像这样配置它:
UIViewController *vc = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil];
vc.myString = resultString;
[self.view addSubview:vc.view];
[vc release];
祝你好运。