我如何使用推送方法(无 segue)将数据从一个 vc 传递到另一个 vc - 已关闭
Posted
技术标签:
【中文标题】我如何使用推送方法(无 segue)将数据从一个 vc 传递到另一个 vc - 已关闭【英文标题】:How can i pass the data from one vc to another vc using push method (without segue) - Closed 【发布时间】:2014-10-23 06:03:51 【问题描述】:我遇到以下问题:
有两个视图控制器,viewController1 和 viewController2。
在 viewController1 中,UIButton
、UITextField
在viewDidLoad
中以编程方式创建,并且按钮在按下时会查看 viewController2。
viewController2 出现时有没有办法从 viewController1 中的UITextField
获取数据。
因为我是编程新手,所以我会适当地给出一个详细解释的答案。
谢谢你..
【问题讨论】:
在.h文件中为ViewController2声明一个属性:NSString *data,然后当你准备好推送视图控制器2时,创建它的一个实例,然后调用viewController2.data = viewController1.textField。文本。现在视图控制器 2 有来自 viewController1 的数据。这个问题已经被问过很多次了,所以我不想把它作为一个答案。这是对类似问题的参考:***.com/questions/5210535/… 提问前先搜索一下:***.com/questions/5210535/… Passing Data between View Controllers的可能重复 【参考方案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];
希望这会有所帮助... :)
【讨论】:
【参考方案2】:实际上,您的问题有很多解决方案。
使用 segues 传递数据。
使用应用委托文件中声明的属性传递数据。
现在,这两种东西都有不同的用途,具体取决于您的需要。你应该详细学习这些东西。在这里解释它们不是一个好主意。
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);
希望对你有帮助。
【讨论】:
以上是关于我如何使用推送方法(无 segue)将数据从一个 vc 传递到另一个 vc - 已关闭的主要内容,如果未能解决你的问题,请参考以下文章
使用 unwind segues 通过 UITableViewcell 推送数据
如何让自定义 UIControl 作为推送操作参与 segue?
使用xib ios7从presentviewcontroller准备推送segue