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

Vis*_*hal 3 ios uistoryboard swift swift2

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

if id == "parent1"{
    //do something
} else {
    //do something else
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

那么如何获取navigationControllerinViewController代码的标识符呢?

shi*_*him 5

您可以使用restorationIdentifier在情节提要中设置的内容;它位于身份检查器中故事板标识符字段的正下方。

从视图控制器的属性获取当前导航控制器

let id = self.navigationController.restorationIdentifier
Run Code Online (Sandbox Code Playgroud)

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

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