解释之前的摘要

就像情节提要一样,将故事表视为指向单个实例的指针,这仅仅是因为我是通过情节提要复制并粘贴的。我将其记录在这里,部分是为了提醒自己(我是Stack Overflow的狂热用户),并作为对他人的警告。当然,我想知道是否存在一种真正的方法来真正区分两者,而不必从头开始重新创建ViewController的简单方法。请,继续阅读以获取解释。

回到故事

首先,我使用情节提要创建了CatUIViewController。我完成了整个过程以及.h.m文件。然后,需要一个类似Dog的ViewController,我将一个空的ViewController从对象库拖放到情节提要上,然后将整个UITableView从CatUIViewController复制并粘贴到DogUIViewController。然后,当然我对.h.m文件做了同样的操作。实际上,CatUIViewController和DogUIViewController之间的唯一区别是,Cat的标头中有两个按钮,而dog的UIImageView以及两个标头共享的其他数据。

自然,当我粘贴到Dog等效项中时,Xcode会为我完成所有连接。它自动连接了所有的IBOutlets和IBAction:Xcode的一个不错的功能。

更多细节

两个表格视图都有背景图像。从Cat到Dog的导航也是可能的,因为我的应用程序使用的是UITabBar-两者之间没有其他链接。此外,在Cat领导其Tab的同时,Dog在其Tab的NavigationController中处于领先地位。

问题

问题是这样的:如果我在DogUIViewController中,然后单击选项卡以转换到CatUIViewController,则转换后,DogUIViewController的背景将显示为CatUIViewController的背景。实际上,如果我访问DogUIViewController,然后又导航到任何其他页面,则……第二次单击CatUIViewController的标签,它神秘地先显示DogUIViewController的数据,然后大约1秒后切换到正确的数据。另一个奇怪的是,相反情况同样如此。

我一直在研究代码,以查看可能的原因,到目前为止,我什么也没发现。好像纠结发生在未暴露给我的Xcode层上:我检查了Connections检查器,.h.m文件,到目前为止找不到任何东西。我希望这只是我的简单疏忽,所以我会继续努力。但以防万一,如果有人解决了类似问题,我在这里问。

最佳答案

尽管您不仅复制并粘贴了UITableView,而且还复制并粘贴了.h.m文件,但存在很多出错的可能性。但是我特别感兴趣的是,您提到的区别仅存在于头文件中。对我来说,这意味着错误的可能原因是您的数据源。无论您在哪里获取数据,都需要花费一秒钟的时间,因此新数据的延迟恰好足以显示旧数据。因此,我以一个问题结束了我的回答:您如何获取数据?您是否在缓存数据?您在打扫物业吗?例如,如果您使用服务器通知更新视图控制器,则不建议使用viewDidUnload,因此我不会使用它来注销通知。无论如何,您都可以使用数据源。

关于ios - XCode5中两个UITableView之间的奇怪纠缠,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25538152/

10-12 22:50