peper-
peper-

Reputation: 181

Storyboard, UIViewController and UISplitViewController

Trying to make storyboard based application for iPad. In it I need to transition from start screen (UIViewController) to main screen (UISplitViewController) and then to full-screen view (again UIViewController).

I saw a number of discussions on the web (at least several - on stackoverflow), stating that UISplitViewController can't be used in Storyboard based application any other way than being RootViewController. Some threads contain workarounds and there's also alternative splitview (https://github.com/mattgemmell/MGSplitViewController) to cope with this.

But what I can't understand is why Apple documentation states quite the opposite. Here is the link to the chapter from Apple's iOS 5.0 Library. It states:


Creating a Split View Controller Using a Storyboard

To add a split view controller to your application’s storyboard:

  1. Open your application’s main storyboard.
  2. Drag a split view controller out of the library. This also creates view controllers for the two panes of the split view controller.
  3. For each of the split view controller’s contained view controllers, use the Identity inspector to set the class name of the view controller.

To present the split view interface, do one of the following:


I was trying it in many ways, but approaches described in last two statements never worked. Both modal segue and performSegue... fail with well-known error:

"*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Application tried to present a Split View Controllers modally..."

Anyone able to explain that? Is this a bug in XCODE/iOS 5.0 or bug in documentation?

Regards, Petr

Upvotes: 15

Views: 9162

Answers (4)

Akhrameev
Akhrameev

Reputation: 363

As for me, I used MGSplitViewController to implement SplitView with modal or push segues. Try it, it works!

Upvotes: 0

Dave
Dave

Reputation: 1

Yes, It's possible passing from UIView to UISplitView. You have to use a custom segue.

Read this link (translate it from japanese)

UIViewController to UISplitViewController

Upvotes: 0

BrandonG
BrandonG

Reputation: 915

It seems the documentation was updated soon after this question was posted. According to the new documentation there is no way to segue to a storyboard. Bummer!

Upvotes: 1

brrmax
brrmax

Reputation: 21

According to this Apple article, the split view controller must be the root. Here is a snippet:

A split view controller must always be the root of any interface you create. In other words, you must always install the view from a UISplitViewController object as the root view of your application’s window. The panes of your split-view interface may then contain navigation controllers, tab bar controllers, or any other type of view controller you need to implement your interface. Split view controllers cannot be presented modally.

Upvotes: 2

Related Questions