objektif-c - Bagaimana untuk melumpuhkan gerak isyarat pop leret sebelah kanan pengawal semasa? Pada masa ini, VC ditolak ke sini.
習慣沉默
習慣沉默 2017-05-02 09:29:05
0
2
593

Contohnya: Pengawal tumit saya ialah pengawal navigasi, dan kini terdapat pengawal A yang saya tolak. Saya harap pengawal ini hanya boleh muncul dengan mengklik butang kembali di sebelah kiri bar navigasi dan slaid betul-betul di sisi. Saya berharap untuk melumpuhkan gerak isyarat pop. Sudah tentu, saya berharap pengawal lain masih tidak mempunyai gerak isyarat pop ini. Sila beritahu saya bagaimana untuk melaksanakan perubahan ini?

習慣沉默
習慣沉默

membalas semua(2)
小葫芦

Tulis dalam pengawal A:

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

    self.navigationController.interactivePopGestureRecognizer.delegate = self;
}

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

    self.navigationController.interactivePopGestureRecognizer.delegate = nil;
}

// 给该控制器添加协议 <UIGestureRecognizerDelegate>

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    return gestureRecognizer != self.navigationController.interactivePopGestureRecognizer;
}
伊谢尔伦

Bangunan dari A -> B lebih elegan

Di dalam viewDidLoad B

self.navigationController.interactivePopGestureRecognizer.delegate = self;
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated {
    [super pushViewController:viewController animated:animated];
    self.interactivePopGestureRecognizer.enabled = NO;
}

Kemudian dalam viewDidDisappear

self.navigationController.interactivePopGestureRecognizer.enabled = YES;

Semuanya ditulis dalam B, bukankah lebih elegan?

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan