Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Uiviewcontroller modalViewController:属性和变量_Uiviewcontroller_Modalviewcontroller - Fatal编程技术网

Uiviewcontroller modalViewController:属性和变量

Uiviewcontroller modalViewController:属性和变量,uiviewcontroller,modalviewcontroller,Uiviewcontroller,Modalviewcontroller,我的iPad应用程序真的需要一些帮助。以下场景: 主视图加载 mainView设置一些变量 主视图呈现modalView modalView将对象添加到mainView的可变数组中 modalView拒绝并调用mainView的方法 现在我的问题是: 如何访问变量和方法而不为每个变量和方法创建新实例 当我执行mainView*main=[[mainView alloc]init]时在modalView中,为了访问方法和变量,旧实例会被销毁,当返回mainView时,我会释放所有变量 谢谢你的

我的iPad应用程序真的需要一些帮助。以下场景:

  • 主视图加载
  • mainView设置一些变量
  • 主视图呈现modalView
  • modalView将对象添加到mainView的可变数组中
  • modalView拒绝并调用mainView的方法
现在我的问题是: 如何访问变量和方法而不为每个变量和方法创建新实例

当我执行
mainView*main=[[mainView alloc]init]时
在modalView中,为了访问方法和变量,旧实例会被销毁,当返回mainView时,我会释放所有变量


谢谢你的每一点帮助!出于好意,Julian

一种方法是向您的
modalView
添加一个属性,类似于
parent
。然后,在从
main视图调用
presentModalViewController
之前,设置
modalView.parent=self
通过这种方式,您可以从
modalView
反向引用
main视图(特定实例)

另一种方法是使
mainView
成为单例对象。这可能对您来说是最佳的,也可能不是最佳的,这取决于您的应用程序的设计。我处理单例对象的方式如下:
+在
mainView
中创建全局/静态变量(例如mv)。类型应与类相同(即
mainView
)。将其初始化为
nil

+创建一个类方法来alloc&init该变量(如果实例不存在)或按原样返回它(如果您已经初始化了它)。这可以简单到:

+ (mainView *) getMainView()
{
    if (!mv_)
        _mv = [[self alloc] init];
    return mv_;
}  

+然后,每当需要访问mainView单例对象时,只需调用
getMainView
。但是,使用这种方法时有一些怪癖,因此,如果您决定这样做,请确保您的应用程序按照您希望的方式运行。

我不明白,为什么要分配新的mainView。不要这样做。不分配mainView将导致应用程序与SIGABRT崩溃。那么我应该如何实现父级(mainView)呢?!别把它忘了。你需要一个控制器实例,只分配一个。好的,我试试。但是我该如何传输数据呢?!我想,您应该阅读有关IOS视图控制器()和委托设计模式()的基础知识