我坚持以下内容:
有两个视图控制器,viewController1和viewController2。
在viewController1中,UIButton
,UITextField
以编程方式在viewDidLoad
中创建,按钮在按下时查看viewController2。
viewController2是否有办法在viewController1中显示时从UITextField
获取数据。
由于我是编程新手,我会给出详细解释的答案。
谢谢..
答案 0 :(得分:-1)
在VC2中创建一个属性:
@property(nonatomic,strong) NSString* yourData;
在VC1中的按钮按下事件中,执行以下操作:
ViewController2 *viewController2 = [[ViewController2 alloc] initWithNib:@"ViewController2" bundle:nil];
viewControllerB.yourData = myTextfield.text;
[self pushViewController: viewController2 animated:YES];
希望这有助于......:)
答案 1 :(得分:-1)
实际上,您的问题有很多解决方案。
使用segues传递数据。
使用app委托文件中声明的属性传递数据。
现在,这些东西根据您的需要有不同的用途。你应该详细了解这些事情。在这里解释它们并不是一个好主意。
http://www.appcoda.com/storyboards-ios-tutorial-pass-data-between-view-controller-with-segue/ http://www.cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html
这些链接可以帮助您理解。
解决您的问题:
在AppDelegate.h(应用程序委托文件)文件中,声明一个属性。
@property NSString *name;
在AppDelegate.m(应用程序委托文件)中合成它。
@synthesize name;
现在,在ViewController1.h中声明AppDelegate对象。
AppDelegate *delegate;
在ViewController1.m的viewDidLoad中输入以下内容:
delegate = (AppDelegate*)[[UIApplication sharedApplication]delegate];
现在,在ViewController中的按钮按下事件中,添加此内容。
//get data from textField and assign it to delegate.name
//delegate.name = textField.text;
在viewController2中创建一个委托对象并访问该值。
//Declare a delegate object in viewController2 and create the delegate object in viewDidLoad of viewController2
//Use delegate.name
//NSLog(@"%@",delegate.name);
我希望它有所帮助。