iDevelopper / PBRevealViewController

A UIViewController subclass for revealing a left and/or right view controller above or below a main view controller.
MIT License
80 stars 16 forks source link

Get frontViewController from rightView? #6

Closed Dbigshooter closed 8 years ago

Dbigshooter commented 8 years ago

Hi there,

I'm used to using SWRevealViewController, and the way you get the front/main viewcontroller is:

let navController = self.revealViewController().frontViewController as? UINavigationController
        mapViewController1 = navController!.topViewController as? MapViewController

However I can't this to work in PBRevealViewController, is there another way?

Update: I figured it out doing so:

let navController = self.revealViewController().mainViewController as? UINavigationController
            mapViewController1 = (navController!.topViewController as? MapViewController)!
            self.mapViewController1.forwardGeocodingTest()

But the rightview does not get unrevealed, can I do this?

iDevelopper commented 8 years ago

Because you don't unreveal it! Add revealViewController().hideRightViewAnimated(true).

Dbigshooter commented 8 years ago

Thanks! One last question, if I want to unreveal when I click on the main View which is a mapView? I'd tried the same as in SWRevealViewController:

  `  self.view.addGestureRecognizer(self.revealViewController().tapGestureRecognizer)`

But it only unreveals if I click on the navigation or toolbar, not when if clicking on the map.

iDevelopper commented 8 years ago

You don't have to add gesture recognizer yourself. PBRevealViewController add it for you. Also, please update to the last version (1.0.5).

Dbigshooter commented 8 years ago

Yea, I found out that Google Maps consumes all the gesturerecognizers. So thats why it isn't working. However I can't get it to work by adding the view you added to make the right view appear behind, can you show me a sample?

iDevelopper commented 8 years ago

You have nothing to do, just update PBRevealViewController with version 1.0.5.

Dbigshooter commented 8 years ago

I've updated, but the right view still appear over my toolbar, even though I've added a view as you told me to.

Dbigshooter commented 8 years ago

After the update (1.0.5) I got this problem:

sssss

It worked perfectly before. I've tried embedding it in a Navigation Controller and uncheck "Shows navigation bar", but doesn't seem to change a single thing.

iDevelopper commented 8 years ago

I did not say you to add a view.

iDevelopper commented 8 years ago

I don't see a right view in your screenshot! I see a left view and a main view!

Dbigshooter commented 8 years ago

Didn't you add a 1 px view above the toolbar to make the right view go behind? I pretty sure you did that. It's in https://github.com/iDevelopper/PBRevealViewController/issues/2

Apologies for being a bit confusing. I'm talking about two problems, but lets stick to the issue of getting the right view behind the toolbar.

iDevelopper commented 8 years ago

Yes i added a 1px view in one of my samples but not in PBRevealViewController class. I already wrote that it is not possible to have the right view behind the tool bar as she is on top of the main view and the tool bar a subview of the main view!

Dbigshooter commented 8 years ago

Oh, how come it is possible to show it below the navigation bar?

iDevelopper commented 8 years ago

This is a navigation bar but managed by a NAVIGATION CONTROLLER. It will be possible too with a TABBAR CONTROLLER. It is managed by Apple.

Dbigshooter commented 8 years ago

Oh okay. I see I can get it behind the toolbar if I set self.revealViewController()?.rightPresentViewHierarchically = false

However this makes it go odd over the navigation bar. I guess there's no fix for that. And there is no way I manually can set the height? So I can make it stop by the toolbar.

iDevelopper commented 8 years ago

Below? Under? What do you want to do exactly? Can you make a drawing? Because I have some difficulties to follow you!

Dbigshooter commented 8 years ago

My apologies, here's a drawing which hopefully explains what I want to achieve. I want the right view top stop by the red arrow. And if there more elements you can just scroll. Is that possible? On a side note, it is a tabbar, just without a tabbarcontroller.

pbrevealviewcontroller

iDevelopper commented 8 years ago

I already told you how to modify the height of the right view. Here is a sample with a map, a toolbar and a right table view:

Example7Swift.zip

Dbigshooter commented 8 years ago

Thanks