如何从FlipsideViewController中的UITextField保存值并在MainViewController中使用它们?

时间:2012-12-15 05:10:04

标签: iphone objective-c

在底部看到编辑

我正在为iPhone制作UtilityView应用程序,我希望能够更改FlipsideViewController中的值。我有一个问题,每当我从FlipsideView切换回MainView时,我在FlipsideView中更改的文本字段的值似乎重置为0.在MainViewController.m下,flipsideViewControllerDidFinish:

playToInt = [controller.playTo.text intValue];

computerMoveSpeed = [controller.aiSpeed.text intValue];

文本字段'playTo'与整数'playToInt'坐标,文本字段'aiSpeed'与整数'computerMoveSpeed'坐标。我认为这应该保存值,即使ViewDidLoad再次运行,但它们似乎都重置为0.

if (playToInt != 10 || computerMoveSpeed != 3)   
{
  playBool = true;
} 
else 
{
  playBool = false;
}

我知道布尔值正在工作,因为我可以用它来改变整数的值,但是它们总是默认回到0.任何帮助都是值得赞赏的。提前谢谢。

注意:我已经查阅了上一个问题'将实用程序中的FlipSideViewController中的UISegmentedControl值传递给mainviewcontroller ...',这对我不起作用...我有太多可能的值来使用索引或开关

编辑:我正在尝试一些我认为非常接近工作的东西...我觉得它只是有错误的语法或其他东西......我在MainViewController.m中有:

computerMoveSpeed = [FlipsideViewController.aiSpeed.text intValue];

playToInt = [FlipsideViewController.playTo.text];
编辑:我有一些类似于上一个的东西,但我认为它有更好的机会来帮助...

FlipsideViewController.m我有

  

_playToNumber = [_ playTo.text intValue];

MainViewController.m

  

playToInt = [controller.playToNumber];

非常感谢任何帮助,但作为一些其他信息,MainViewController中的字符串表示它需要playToNumber变量上的标识符,但它被声明为int ...我不知道int是否有标识符,但如果有,请告诉我!

编辑:有没有办法使用MainViewController中的prepareForSegue函数以FlipsideViewController的可用格式保存值?

编辑:我发现它只是在加载ViewDidLoad时得到初始值,所以我开始使用计时器来检索值。这似乎有效,我只需要知道如何从MainViewController

访问这些值

2 个答案:

答案 0 :(得分:0)

使用委托将值发送回MainViewController。请参阅this tutorial以了解如何使用代理。

答案 1 :(得分:0)

你有很多方法可以完成这项任务,

1。 NSUserDefault

按照回答Link

2。使用Getters, setters, property

按照回答Link

修改

如果您需要intNSInteger,则无需保留 只是做

@property(nonatomic) NSInteger YourIntValue;

_playToNumber = [_playTo.text intValue];

MainViewController *MVC = [[MainViewController alloc] init];
MVC.playToInt=_playToNumber;
[self.navigationController pushViewController:MVC animated:YES];