标签栏项目不接收变量

时间:2012-07-17 02:17:11

标签: objective-c xcode uitabbarcontroller uitabbaritem

首先,我正在使用故事板。 我首先创建了一个由一个类控制的viewcontroller,在这个视图中,ther是一个文本字段,用户在其中放置一个数字,一个按钮使用模态将用户带到一个tabbar控制器,其中有两个itens“one”和“two”,“one “和”两个“将我们带到不同的viewcontrollers(由同一个类控制),但两者都带有标签,这个标签必须显示用户在第一个视图的文本字段中放置的值...我只知道该怎么做通过:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:[mytextfield.text intValue] forKey:@"integerKey"];

在一个班级中,并且:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSInteger mynumber = [prefs integerForKey:@"integerKey"];

NSString *mystring = [[NSString alloc] initWithFormat:@"%i", mynumber];
mylabelonone.text = mystring;
mylabelontwo.text = mystring;

在另一个班级......

但是,当我在模拟器中测试它,并单击将我们带到“一”的按钮时,标签是空的,即便如此,当我点击“两个”的项目时,标签就在那里确切的数字!

我试图在标签栏控制器中更改“一个”和“两个”顺序,然后问题发生在“两个”,一个是完美的!

我不知道会发生什么......

1 个答案:

答案 0 :(得分:1)

表视图控制器以一种有趣的方式工作。在标签之间切换时,可以使用viewWillAppearviewWillDisappear等方法。

所以问题就变成了你发布代码行的地方。该代码将起作用,但只有在用户点击不同选项卡之前运行第一个代码,并且代码的第二部分在第一个代码之后运行。

– tabBarController:shouldSelectViewController:tabBarController:didSelectViewController:

另一种方法是导入视图,然后在第一个视图中设置变量,同时仍然在第一个视图中。