2016-02-29 43 views
-1

所以超NOOB当谈到iPhone开发从viewControllers的iOS获取数据

我有一个标签栏控制器三个视图控制器。 我在这里想要的是当我按下一个按钮从第一个视图获取并显示TextFields中的数据。

在我firstViewController.h我已经宣布了的TextField这样的:

IBOutlet UITextField * driver; 
IBOutlet UITextField * phone; 
IBOutlet UITextField * poe; 
IBOutlet UITextField * doe; 
IBOutlet UITextField * coe; 
IBOutlet UITextField * dod; 
IBOutlet UITextField * customer; 
IBOutlet UITextField * customerContact; 
IBOutlet UITextField * customerTank; 
IBOutlet UITextField * trailer; 
IBOutlet UITextField * truck; 

然后在我的Main.storyboard我已经连接网点每个文本字段

现在我认为它只是将firstViewController.h导入我的thirdViewController.h使用#import“”并以某种方式检查触发按钮单击的时间。但在NOOBines方面似乎并不那么容易。

我认为在thirdViewController.h做这样的事情可以使魔:

#import <UIKit/UIKit.h> 
#import "FirstViewController.h" 
@interface ThirdViewController : UIViewController{ 
NSString *theDriver = [driver.text]; 
} 
@end 
+0

我前一阵发生了这个问题。你可以看看这个解决方案[这里](http://stackoverflow.com/questions/5210535/passing-data-between-view-controllers) –

+0

也许这是有帮助的http://stackoverflow.com/questions/32979924/passing -data-from-first-view-controller-to-the-lastviewcontroller/32980270#32980270 – vikingosegundo

回答

1

不幸的是它不是那么容易。假设在第一个和第三个之间有第二个ViewController,那么您将在使用此方法的segue期间传递变量。像司机,电话等你的第二个视图控制器的.h文件中定义了一些变量,从你那里有什么分配这些值

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
     if ([segue.identifier isEqualToString:@"the name of your segue"]) { 
      secondViewController *secondVC = segue.destinationViewController; 
      secondVC.driver = self.driver.text; 
      secondVC.phone = self.phone.text; 
      //continue typing your values and use this to carry this same method in your secondViewController to carry them into your thirdViewController 
} 

编辑1:

下面是一个例子我在我的一个应用程序中使用,我在看一个游戏列表,我想看看一个单独的游戏。这是MatchesViewController.m文件中的代码。我有我的gameObject(在你的情况下,gameObject将是文本),我想将它发送到下一个视图控制器。我也有这种进口的“MatchesViewController.m”

#import "EachMatchViewController.h" 


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"showOneGame"]) { 
     EachMatchViewController *eachVC = segue.destinationViewController; 
     eachVC.gameObject = self.gameObject; 
    } 
} 

这就是在我的“EachMatchViewController.h”,这是视图控制器我要定义。

@property (strong, nonatomic) PFObject *gameObject; 

一些在我的“EachMatchViewController.m”我可以使用它传递的数据。

+0

您在此处提供的代码已添加到FirstViewController.m文件,现在的问题是它无法找到segue.SecondViewController。是否需要创造额外的东西或应该弹出吗? – mogren3000

+0

不管你要去哪里,它都假设是segue.destinationViewController。如果您正在使用带segse的故事板,则必须给segue一个名称,这是您检查segue.identifier的位置。如果你不使用故事板,我会检查你的问题下的评论。那里有一堆很棒的东西。 – kygcoleman

+0

我看到了。我似乎无法访问声明的IBOutlet UITextField *驱动程序;在SecondViewController.h中,它似乎没有找到它。说你在'SecondViewController *'类型的对象上找不到'Property'driver',是否意味着要访问实例变量'driver'?“ – mogren3000