iOS:从Storyboard中唯一标识ViewController

我有一个自定义ViewController是可重用的,任意数量的实例将在Storyboard中的NavigationController中链接在一起,所有这些都与代理共享相同的模型。

ViewController需要告诉模型他们是哪个实例。 目前,他们有一个int属性,他们从segue得到,但它似乎不是很习惯,并不适用于在屏幕上的多个实例(对于iPad)。 我认为有一个更清洁的方式来做到这一点,所以有人知道它是什么? 谢谢。

结果:self.view.tag

一个UIViewController的UIView有一个tag属性,你可以从任何你想要的地方设置。 您还可以通过使用[self class]来简单地识别控制器的types。 或者直接通过引用控制器来简单地使用内存位置。

更新您可以简单地使用一个类别实现一个UIViewController的唯一标识符。

我想在devise架构方面“最干净”的方式可能是一个ViewController的数组。 (可以在应用程序代理中进行pipe理)。但是,有内存方面的考虑 – 在iPhone上,您可能需要创build并根据需要销毁视图控制器。 该数组可以包含identifier ,也可能包含其他一些与模型有关的信息,以便根据需要重新创build控制器。

太糟糕了没有UIViewController的属性storyboardIdentifier 。 它们可以用这个id实例化,但是如果viewcontroller可以查询它的id就会有帮助。