XCode5中两个UITableView之间的奇怪纠缠

时间:2014-08-27 22:51:23

标签: ios iphone uitableview storyboard xcode5

解释前的摘要

就好像故事板将Tables视为指向单个实例的指针一样,仅仅因为我复制并粘贴了故事板。我在这里记录这部分是为了提醒自己(我是Stack Overflow的狂热用户)并向其他人发出警告。当然,我想知道是否有一种简单的方法可以真正解开两者,而无需从头开始重新创建一个ViewControllers。 请继续阅读解释。

BACK STORY

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

当然,Xcode会在我粘贴到Dog等价物的那一刻为我做所有连接。它自动连接所有IBOutlets和IBActions:Xcode的一个很好的功能。

更详细

两个表格视图都有背景图片。从Cat到Dog的导航是可能的,因为我的应用程序使用UITabBar - 两者之间不存在其他链接。此外,当Cat领导其Tab时,Dog在其Tab的NavigationController中就行了。

问题

问题是:如果我在DogUIViewController中并单击选项卡以转换到CatUIViewController,转换后DogUIViewController的背景显示为CatUIViewController的背景。事实上,如果我访问DogUIViewController,然后导航到任何其他页面,那么......第二次我点击TabU for CatUIViewController,神秘地它首先显示DogUIViewController的数据,然后在大约1秒之后切换到正确的数据。另一个奇怪的是,反过来也同样如此。

我一直在调查代码,看看可能是什么原因,到目前为止我一无所获。这就好像纠缠发生在Xcode中没有暴露给我的层:我查看了Connections Inspector,.h.m文件,到目前为止我找不到任何东西。我希望这是一个简单的疏忽,所以我一直在挖掘。但是,如果不是,而其他人已经解决了类似问题,我在这里问。

1 个答案:

答案 0 :(得分:1)

虽然您不仅复制并粘贴了UITableView,还复制并粘贴了.h.m文件,但错误的可能性很大。但我特别感兴趣的是你提到的差异只存在于头文件中。这对我来说意味着错误的可能原因是您的数据源。无论您何时获取数据,都需要一瞬间,以便新数据延迟到足以显示旧数据。所以我结束了我的回答,提出了一个问题:你是如何获取数据的?你在缓存数据吗?你在打扫财产吗?例如,如果您使用服务器通知来更新视图控制器,则不推荐使用viewDidUnload,因此我不会使用它来注销notificatoins。无论如何,您都在数据源处。

相关问题