As I want to display number of menus on a left side of a screen just like following-it is a new Facebook application.when you click on bar shown as a red square around it,th
Click following link to get it https://github.com/nverinaud/NVSlideMenuController
Just have a look
https://github.com/BenHall/ios_facebook_style_navigation
you will find many ways to do that. Select anyone as per your need.
Facebook guys have done brilliant job in the new version of the app. The similar open source code can be found from here -
It reveals technique behind doing split view for iPhone.
Edit: Few other open source codes:
Source 1
Source 2
Source 3
Source 4
Source 5
Source 6
Source 7
Source 8
Source 9
Source 10
Source 11
You can use InteractiveSideMenu library. It supports interactive opening/closing menu. It supports interactive opening/closing menu and following customization:
You should use 3 basic ViewControllers for creating subclasses for implementing your side menu.
MenuContainerViewController
is a host for menu and content viewsMenuViewController
is a container for menu viewMenuItemContentControlller
is a container for content that corresponds menu itemTo setup your side menu you shoud do 3 things:
MenuViewController
and assing it to menuViewController
propertycontentViewControllers
propertyselectContentViewController(_ selectedContentVC: MenuItemContentViewController)
Here is an example of setup Host controller.
import InteractiveSideMenu
class HostViewController: MenuContainerViewController {
override func viewDidLoad() {
super.viewDidLoad()
self.menuViewController = self.storyboard!.instantiateViewController(withIdentifier: "NavigationMenu") as! MenuViewController
self.contentViewControllers = contentControllers()
self.selectContentViewController(contentViewControllers.first!)
}
private func contentControllers() -> [MenuItemContentViewController] {
//here is instantiation of content view controllers
}
}
You can find more details in the example here.
NO there are no SDK available to do this. you can do this by two way.
I recommend second one because I have used it and working fine.
For first approach you will find some example and demo on github.com.
let me give you short idea how I have implemented it by using two UIView.
Your all normal content will be in default UIView and slide controls will be on second view.
By default normal UIView will be visible and slider UIView be at -x pos something like (-200,0,200,320) set this according to your need.
When you click show/hide button it change its frame property so normal UIView slide right side 200 pt and slider UIView come in screen.
Let me show u some code to hide/unhide:
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
view.frame = CGRectMake(250,
view.frame.origin.y,
view.frame.size.width,
view.frame.size.height);;
slideView.frame = CGRectMake(0, view.frame.origin.y, 250, view.frame.size.height);;
[UIView commitAnimations];
Parameter in CGRectMake can be anything according to what you want.
To implement this make a subclass of UIView. and add UITableView if u want look like facebook.
Update:
While searching some new implementation I found a wonderful job on this concept by one developer. If anyone is thinking to add this feature than you must visit this once : MMDrawerController
All the best