SWRevealViewController menghentikan gerakan ketuk saat pengguna berada di frontView

Saya menggunakan SWRevealViewController untuk menu geser. Saya telah menambahkan gerakan ketuk di tampilan depan menggunakan:

SWRevealViewController *revealController = [self revealViewController];

[revealController tapGestureRecognizer];

Gerakan ketuk saya berfungsi. Namun masalahnya adalah tampilan depan saya memiliki tombol yang memerlukan ketukan untuk menavigasi ke layar lain. APAKAH ada cara untuk menonaktifkan gerakan tap saat frontView diaktifkan dan mengaktifkan gerakan tap saat menu ditekan?


person JMS    schedule 08.03.2016    source sumber


Jawaban (3)


Saya pikir Anda sudah mencoba ini

buat delegasi di kelas Anda

@interface xxxViewController () <SWRevealViewControllerDelegate>

pada metode delegasi sebagai

  - (void)revealController:(SWRevealViewController *)revealController willMoveToPosition:(FrontViewPosition)position
{
    if (position == FrontViewPositionLeftSide) {
        self.tapGestureRecognizer.enabled = YES;
        // disable your current class action

    }
    else if (position == FrontViewPositionLeft){
        self.tapGestureRecognizer.enabled = NO;
        // enable your current class action


    }
}
person Anbu.Karthik    schedule 08.03.2016
comment
self.tapGestureRecognizer.enabled = YES; adalah dari mengungkapkanController? yaitu Di mengungkapkanController ada metode [revealController tapGestureRecognizer];. Bagaimana cara mengaktifkan dan menonaktifkan ini? - person JMS; 08.03.2016
comment
ya ya gan....., lihat ini sekali github.com/John-Lluch/ SWRevealViewController/issues/92 - person Anbu.Karthik; 08.03.2016

Import SWRevealViewController.h di kelas menu geser keluar Anda. Kemudian di menu geser Anda metode viewWillAppear letakkan baris ini-

-(void) viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:YES];

   self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=false;

}

dan dalam metode viewWillDisappear letakkan baris ini-

-(void) viewWillDisappear:(BOOL)animated
{

self.revealViewController.frontViewController.revealViewController.tapGestureRecognizer.enabled=true;

}
person Rohit Khandelwal    schedule 08.03.2016

Di pengontrol tampilan depan tambahkan ini

SWRevealViewController *objRevealViewController = [self revealViewController];
[self.view addGestureRecognizer:objRevealViewController.tapGestureRecognizer];
person Shrikant Tanwade    schedule 08.03.2016