I have a problem,
I am programming with Monotouch 5.2.8 for IOS 5.1.
But since the IOS 5.1 update my iPad configs the UISplitViewController so it is docked on the left side instead of presented as a popover.
It works with IOS 5.0 but in 5.1 i got this problem.
Here is the source code for my UISplitViewController:
splitViewController = new UISplitViewController ();
splitViewController.WeakDelegate = detailViewController;
splitViewController.ViewControllers = new UIViewController[] {
navigationController,
detailViewController
};
From Apple's iOS 5.1 SDK release notes:
Here (login required).
UPDATE:
From what I understand on the above, we can kiss the automatic popover appearance of the master controller goodbye in iOS 5.1.
The only way I see is possible to keep the "old" appearance, is by implementing our own
UIPopoverController
and taking advantage of theShouldHideViewController
delegate method. Thankfully with MonoTouch, we have that method available as a property in theUISplitViewController
class, making things a bit simpler.I do get a strange behavior though. With iOS SDK 5.1 on my Mac and iOS 5.1 on my iPad; on the device, I get the "sliding" appearance, while on the simulator I get the "old", popover appearance. This is with MonoTouch 5.2.4, which is the latest stable version. Also, it does not contain a
PresentsWithGesture
property. I tried setting its value to false through MonoTouch.ObjCRuntime messaging, but no luck. The selector keeps returning true. So I cannot deactivate the swipe gesture.Even tried creating my own
UIPopoverController
and assigning it as the master in the split controller to see what happens. Doesn't work becauseUIPopoverController
is not aUIViewController
...Some useful info in this question, for ObjC.
Turns out you can disable the
presentsWithGesture
in the application delegate, but once the view controllers have been presented, there is no changing it.I needed to disable the appearance of the left view controller during a login process, but turns out I can't enable it later.