如何使用push方法(无segue)将数据从一个vc传递到另一个vc - 已关闭

时间:2014-10-23 06:03:51

标签: ios objective-c

我坚持以下内容:

有两个视图控制器,viewController1和viewController2。

在viewController1中,UIButtonUITextField以编程方式在viewDidLoad中创建,按钮在按下时查看viewController2。

viewController2是否有办法在viewController1中显示时从UITextField获取数据。

由于我是编程新手,我会给出详细解释的答案。

谢谢..

2 个答案:

答案 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)

实际上,您的问题有很多解决方案。

  1. 使用segues传递数据。

  2. 使用app委托文件中声明的属性传递数据。

  3. 现在,这些东西根据您的需要有不同的用途。你应该详细了解这些事情。在这里解释它们并不是一个好主意。

    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);
    

    我希望它有所帮助。