如何从 ViewController 中找到 navigationController 的标识符?

How to find the identifier of the navigationController from a ViewController?

我在标签栏控制器中有两个导航控制器,它们指向同一个视图。这在 2 个不同的选项卡中为我提供了该视图的 2 个不同实例。现在我希望视图根据其父导航控制器表现不同。

if id == "parent1"{
    //do something
} else {
    //do something else
}

那么如何获取ViewController代码中navigationController的标识符呢?

可以使用故事板中设置的restorationIdentifier;它就在身份检查器中故事板标识符字段的下方。

从视图控制器的 属性

获取当前导航控制器
let id = self.navigationController.restorationIdentifier

请注意,通过设置此 属性,您是在告诉系统应保存视图控制器以供恢复,这可能会产生意想不到的后果。参见 documentation

或者,您可能需要考虑在视图控制器 class 上使用子classes 或某种 属性(例如,可能使用 IBInspectable 等)。