Programmatically get a Storyboard ID?

The storyboard id is only meant to find and instantiate a VC from a storyboard. As written in the UIStoryboard reference:

"This identifier is not a property of the view controller object itself and is only used by the storyboard file to locate the view controller."

Why do you need it?


You can use the restorationIdentifier, it's right above the Storyboard identifier and it's a UIViewController property.


You can use the Restoration ID:

NSString *restorationId = self.restorationIdentifier;

Just check the checkbox 'Use Storyboard ID'


You can also try doing something like this:-

NSString *storyboardId = [viewController valueForKey:@"storyboardIdentifier"];

This will precisely give you the Storyboard Id that you have set via interface builder.

Swift extension:

extension UIViewController {
    var storyboardId: String { 
        return value(forKey: "storyboardIdentifier") as? String
    }
}