Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Iphone 导航控制器疯狂_Iphone_Objective C - Fatal编程技术网

Iphone 导航控制器疯狂

Iphone 导航控制器疯狂,iphone,objective-c,Iphone,Objective C,你好。我有一个导航条应用程序行为不正常。我有两个按钮,一个显示数据库的所有结果,另一个显示数据库的子集。当然,每个按钮都有自己的操作方法。这两个方法都实例化了同一类的视图控制器对象 如果我启动应用程序,只点击“所有结果”按钮,我会看到所有结果。愚蠢的是,当我单击结果子集的按钮(并查看结果子集)时,单击导航栏上的后退,然后单击整个集合的第一个按钮,我再次看到子集 在到处调试断点时,我注意到结果视图控制器的dealloc方法没有被调用。但是,当我单击“上一步”,然后单击“所有结果”按钮时,我的结果视

你好。我有一个导航条应用程序行为不正常。我有两个按钮,一个显示数据库的所有结果,另一个显示数据库的子集。当然,每个按钮都有自己的操作方法。这两个方法都实例化了同一类的视图控制器对象

如果我启动应用程序,只点击“所有结果”按钮,我会看到所有结果。愚蠢的是,当我单击结果子集的按钮(并查看结果子集)时,单击导航栏上的后退,然后单击整个集合的第一个按钮,我再次看到子集

在到处调试断点时,我注意到结果视图控制器的dealloc方法没有被调用。但是,当我单击“上一步”,然后单击“所有结果”按钮时,我的结果视图控制器确实会再次调用alloc/init方法

因此,即使我有一个明显的内存泄漏,我新分配/初始化的视图控制器对象怎么可能与之前实例化的视图具有相同的数据?单步执行代码使这个问题看起来更奇怪,因为它似乎运行正常……只是生成旧数据


任何建议都很好。谢谢

在表视图上调用“reloadTableData”应确保数据被刷新。在操作方法中调用它。

在表视图上调用“reloadTableData”应该确保数据被刷新。在操作方法中调用它。

为什么您的按钮重复实例化视图控制器?为什么不将指向视图控制器的指针作为实例变量,您只需设置一次即可随意使用?

为什么您的按钮会重复实例化视图控制器?为什么不将指向视图控制器的指针作为实例变量,您只需设置一次即可随意使用?

这只是一个猜测,但可能与tableViewCells的重用有关。尝试始终创建UITableViewCell,避免重用标识符,以查看旧数据是否仍然存在。

这只是一个猜测,但可能与TableViewCell的重用有关。尝试总是创建一个UITableViewCell,避免重用标识符,以查看旧数据是否仍然存在。

我不久前发现了问题所在,并认为我会回答自己愚蠢的问题。:)

我忘记了我将数据库类设置为单例,并在app delegate类中放置指向“allResults”的主指针


谢谢你的意见。每一点都有助于我更好地理解这个新环境。

我不久前发现了问题所在,并认为我会回答自己愚蠢的问题。:)

我忘记了我将数据库类设置为单例,并在app delegate类中放置指向“allResults”的主指针


谢谢你的意见。每一点都能帮助我更好地理解这个新环境。

不,这并不能解决它。我从子视图的ViewWillAspect方法中调用了[table reloadData],并从action方法中进行了尝试:(这很奇怪。您的表委托方法是否被调用?numberOfRowsInSection、cellForIndexPath等?不,这并没有解决问题。我从子视图的ViewWillExample方法调用了[table reloadData],我也从action方法中尝试了它。)(这很奇怪。你的表委托方法被调用了吗?那么numberOfRowsInSection、cellForIndexPath等等?我也试过了。还是不走运。你会认为在将视图控制器推到导航控制器堆栈上之前释放视图控制器并重新分配它会消除这种奇怪的遗留数据异常。啊。我也试过了。仍然没有luck、 您可能认为,在将视图控制器推到导航控制器堆栈上之前,释放视图控制器并重新分配它可以消除这种奇怪的遗留数据异常。呃,尝试发布IBAction方法的相关部分。可能有助于某人发现问题。尝试发布IBAction方法的相关部分。可能有助于某人发现问题他提出了这个问题。