I want to implement the type of functionality as seen in the image below. I do not know if this is a UISplitViewController that has its trait collection overridden to display side-by-side in portrait orientation or if this is two UITableViewControllers using a custom animation object. Is it possible to achieve this with a UISplitViewController or is this simply using an animation object? Side-by-side or the primary (master) view controller overlaying the secondary (detail) view controller is something I am also interested in.
Is this what you're looking for? SplitView like Facebook app on iPhone
I'm using SWRevealViewController and it's great.
Github,
Tutorial
Related
I've studied examples of split view (like this one) and it works great. I just need one change of behavior. I would like to have both master and detail controller visible when user have iPad in portrait. It should work just like FB Messenger or Skype. Both controllers side-by-side and without able to hide master controller. How is it possible to do that? Thanks for help
Bonus question: Is it possible to somehow set behavior for iPad portrait be same like iPhone portrait? If I would change my mind and I would like to have detail in fullscreen and after tap on left navigation bar button I would have master view in fullscreen and without detail visible. Is i possible or split view decides that and there is not much what I can do about it?
A UISplitViewController has a property called preferredDisplayMode. You can set this to any one of these values:
UISplitViewControllerDisplayModeAutomatic
UISplitViewControllerDisplayModePrimaryHidden
UISplitViewControllerDisplayModePrimaryOverlay
UISplitViewControllerDisplayModeAllVisible
You are looking for UISplitViewControllerDisplayModeAllVisible.
[self.splitViewController setPreferredDisplayMode:UISplitViewControllerDisplayModeAllVisible];
UISplitViewControllerDisplayModeAllVisible
The primary and secondary view controllers are displayed side-by-side onscreen.
Available in iOS 8.0 and later.
You can read more about the display modes here on Apple's documentation.
I'm using the iOS SDK 8.1.
In landscape mode, is it possible to make the master view animate left to hide and then animate right to display again? I don't want it to overlap the detail view like in portrait mode.
Would I have to create my own custom split view controller for that functionality?
No, it is not possible to hide/unhide master in landscape mode.
There are many opensource libraries for creating custom splitView controller available.
This is one good library : https://github.com/mutualmobile/MMDrawerController
I am using a third party popover controller on the iphone and have ran across an issue. The one I'm using is WYPopoverController but have tried using FPPopover and it has the same "issue" since they work in a similar way. Here is the deal:
I have a notifications button in my app which pops up a popover controller which contains the notifications feed. It's like the Facebook app. You can see it on the below image.
Now what I want to do it so present a view controller on top of everything and in full screen. The way that popover controller works is that it ads its view directly to the applications main window and its not nested in the view hierarchy so I get a warning saying presenting view controllers on detached view controllers is discouraged and it does not present full screen as well (I know thats logical). If I present it on the parent view controller (the red one in the background) it gets presented below the popover view.
How to fix this?
I was thinking about using a new UIWindow instance and using a root view controller there. Is this an OK solution or is it a hack? If it's ok then how do I accomplish this? I want the presentation and dismissal to be animated :)
I want it to look like Facebok Paper app when you tap an item in the notifications feed.
I have the app with two view controllers.
The first view controller contains two subview: one would keep it's orientation; second - would be rotated (like camera layer and controls in iOS Camera app).
The second – should support all orientations.
I've found a solution: to keep first view controller in Portrait mode and rotate the subview manually, by handling UIDeviceOrientationDidChangeNotification.
The problem is in iOS 6.0.
I've tried to add category for UINavigationController, but it seems like rotation rules are global.
A sample code is attached
https://dl.dropbox.com/u/2167984/temporary/rotationSample.zip
I've resolved this issue: just moved first view controller out of navigation controller and show the second view controller as modal.
Hope there is not an answer yet (I've checked). Can I introduce a login View in my application that enables a SplitView by using a button or something?
I've checked MGSplitViewController, but I'd like to use something more light and minimal.
If it's not possible, can I introduce a login View in my DetaiView that enables a TableView?
You can transition between arbitrary view controllers in iOS. The usual ways are using modal presentation (I like to present splash screens with a cross-dissolve animation to the root view controller of the app), or pushing/popping with navigation controllers. You can also programatically swap between multiple views in a view controller via setting the "view" property.