我有一个应用程序,在第一个视图控制器中保留四个变量。 通过导航控制器推送的第二个视图控制器应将这些变量发送到Web表单。
所以我需要在第二个视图控制器中使用这四个变量。
目前,在第一个视图控制器中,我在app delegate中设置了vars:
MyDelegate *delegate = (MyDelegate *) [[UIApplication sharedApplication] delegate];
delegate.var1 = var1;
delegate.var2 = var2;
[...]
当我在第二个视图控制器中需要它们时,我会通过我的委托来获取它们。 但可能,这是错误的方式。
如何在控制器之间传输我的变量?什么是最好的方式?
答案 0 :(得分:4)
在第二个视图控制器中声明这些变量的属性,然后在创建第二个视图控制器时,在将其推送到导航堆栈之前,为这些属性指定值。
答案 1 :(得分:0)
只要变量在头文件中声明为实例变量,只要UIView Controller仍然被实例化,就应该可以访问它们。
答案 2 :(得分:0)
我认为最佳做法是通过MySecondViewController
构造函数传递它。