Ruchi
Ruchi

Reputation: 5192

Sidemenu using swift - reference taken https://github.com/evnaz/ENSwiftSideMenu

I have created common sidemenu for all main view controller using reference https://github.com/evnaz/ENSwiftSideMenu

Now the issue is i have created sidemenu view controller from storyboard instead of using code itself,it will not show anything on side menu.

Ideally it has to show the page which design from story board.

Actually only TableViewController work with this example. i need to work with UIViewController.

Anyone have idea about this ?

Upvotes: 0

Views: 3721

Answers (1)

ncerezo
ncerezo

Reputation: 1371

Check out the latest version, I added precisely that functionality a few weeks ago: you can now use a UIViewController, no need to use a UITableViewController.

But other than that, I can't tell without more information why it doesn't show up. I'm using it in several apps and it works ok. I've got a UINavigationController, which uses a subclass of ENSideMenuNavigationController, and a UIViewController for the menu itself.

This is it, basically:

class MainNavigationController: ENSideMenuNavigationController, ENSideMenuDelegate  {

override func viewDidLoad() {
    super.viewDidLoad()

    var mainMenuViewController: MainMenuViewController = storyboard?.instantiateViewControllerWithIdentifier("MainMenuViewController") as! MainMenuViewController
    mainMenuViewController.navController = self
    sideMenu = ENSideMenu(sourceView: self.view, menuViewController: mainMenuViewController, menuPosition:.Right)
    //sideMenu?.delegate = self //optional
    sideMenu?.menuWidth = 240.0 // optional, default is 160
    sideMenu?.bouncingEnabled = false
    sideMenu?.animationDuration = 0.2

    // make navigation bar showing over side menu
    view.bringSubviewToFront(navigationBar)
}

// MARK: - ENSideMenu Delegate
func sideMenuWillOpen() {
    println("sideMenuWillOpen")
}

func sideMenuWillClose() {
    println("sideMenuWillClose")
}

override func didRotateFromInterfaceOrientation(fromInterfaceOrientation: UIInterfaceOrientation) {
    super.didRotateFromInterfaceOrientation( fromInterfaceOrientation )
    sideMenu?.updateFrame()
}

}

Then I have the menu view itself, also in the Storyboard, which is a UIViewController. Here is a fragment:

class ERAMainMenuViewController: UIViewController {

weak var navController: ERAMainNavigationController?

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var exitButton: UIButton!
@IBOutlet weak var headImage: UIImageView!

let kInset:CGFloat = 64.0

override func viewDidLoad() {
  super.viewDidLoad()

  // Customize apperance of table view
  tableView.contentInset = UIEdgeInsetsMake(kInset, 0, 0, 0) //
  tableView.separatorStyle = UITableViewCellSeparatorStyle.SingleLine
  tableView.backgroundColor = ERAssistantTheme.sideMenuItemBackgroundColor
  tableView.scrollsToTop = false

  // Preserve selection between presentations
  //        self.clearsSelectionOnViewWillAppear = true
  //        tableView.selectRowAtIndexPath(NSIndexPath(forRow: selectedMenuItem, inSection: 0), animated: false, scrollPosition: .Middle)
}
}

Upvotes: 2

Related Questions