cari

Rumah  >  Soal Jawab  >  teks badan

objektif-c - Bagaimana untuk melumpuhkan gerak isyarat pop leret sebelah kanan pengawal semasa? Pada masa ini, VC ditolak ke sini.

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?

習慣沉默習慣沉默2824 hari yang lalu596

membalas semua(2)saya akan balas

  • 高洛峰

    高洛峰2017-05-02 09:31:05

    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;
    }
    

    balas
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-02 09:31:05

    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?

    balas
    0
  • Batalbalas