2014-08-27 33 views
2

内容BEFORE说明奇怪缠结

这是因为如果故事板被处理表作为指针指向的单个实例,仅仅是因为我复制并通过故事板粘贴。我在这里记录这部分是为了提醒自己(我是Stack Overflow的狂热用户)并向其他人发出警告。当然,我想知道是否有一种简单的方法来真正地解决这两个问题,而不必从头开始重新创建一个ViewController。请阅读以获得解释。

背后的故事

首先我创建CatUIViewController用故事板。我完成了整个事情以及.h.m文件。然后,需要一个类似的ViewController for Dogs,我将一个空的ViewController拖放到Object Library的Storyboard中,然后将整个UITableView从CatUIViewController复制并粘贴到DogUIViewController。当然,我也对.h.m文件做了同样的处理。真的,CatUIViewController和DogUIViewController唯一的区别在于Cat的头部有两个按钮,而Dog有一个UIImageView以及两个头部共享的其他数据。

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

进一步详细

两个表视图具有一个背景图像。从猫到狗的导航是可能的,因为我的应用程序使用UITabBar - 两者之间不存在其他链接。此外,虽然Cat领先其Tab,但Dog却在Tab的NavigationController中沿着线条向下。

的问题

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

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

+0

这是一个真正优美的提问方式。太糟糕了,答案可能对你没有好处。看起来这是一个故事板错误,并且有很多这样的错误。无论如何,很好的阅读。 – 2014-08-27 23:02:40

+0

您可以控制或右键单击Xco​​de中的右舷并将其显示为“source” - 这将显示底层的XML文档,并可能允许您查看是否存在不应该存在的内容 – Paulw11 2014-08-27 23:27:35

+0

@ Paulw11是否存在某些内容特别我应该寻找?没有什么会跳到我身上。迄今为止所有的ID都是不同的。 – learner 2014-08-27 23:43:46

回答

1

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

+0

我的数据源确实正在共享。这是相同的服务电话,但具有不同的参数。是的。这是一个很大的问题。 – learner 2014-08-28 07:08:52