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就会有帮助。