Presents a view controller in a secondary (or detail) context.
- iOS 8.0+
- Mac Catalyst 13.0+
- tvOS 9.0+
The current view controller.
The object being acted upon.
You use this method to decouple the need to display a view controller from the process of actually presenting that view controller onscreen. Using this method, a view controller does not need to know whether it is embedded inside a navigation controller or split-view controller. It calls the same method for both. In a regular environment, the
UISplit class overrides this method and installs
vc as its detail view controller; in a compact environment, the split view controller’s implementation of this method calls
The default implementation of this method calls the
target method to locate an object in the view controller hierarchy that overrides this method. It then calls the method on that target object, which displays the view controller in an appropriate way. If the
target method returns
nil, this method uses the window’s root view controller to present
You can override this method in custom view controllers to display
vc yourself. Use this method to display
vc in a secondary context. For example, a container view controller might use this method to replace its secondary child. Your implementation should adapt its behavior for both regular and compact environments.