在视图控制器之间传递变量

时间:2011-02-23 17:48:17

标签: iphone uiviewcontroller

我有一个应用程序,在第一个视图控制器中保留四个变量。 通过导航控制器推送的第二个视图控制器应将这些变量发送到Web表单。

所以我需要在第二个视图控制器中使用这四个变量。

目前,在第一个视图控制器中,我在app delegate中设置了vars:

MyDelegate *delegate = (MyDelegate *) [[UIApplication sharedApplication] delegate];
delegate.var1 = var1;
delegate.var2 = var2;
[...]

当我在第二个视图控制器中需要它们时,我会通过我的委托来获取它们。 但可能,这是错误的方式。

如何在控制器之间传输我的变量?什么是最好的方式?

3 个答案:

答案 0 :(得分:4)

在第二个视图控制器中声明这些变量的属性,然后在创建第二个视图控制器时,在将其推送到导航堆栈之前,为这些属性指定值。

答案 1 :(得分:0)

只要变量在头文件中声明为实例变量,只要UIView Controller仍然被实例化,就应该可以访问它们。

答案 2 :(得分:0)

我认为最佳做法是通过MySecondViewController构造函数传递它。