2013-08-05 3 views
0

У меня 4 просмотра.Назад действие кнопки UINavigation Views?

первый является rootView, а затем View1, View2 & View3.
Работает согласно rootView-> View1-> View2-> View3.

Я должен прыгать от View1 до View3, но когда я использую кнопку возврата из View3, она появляется на View2. Если я использую следующий код

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES]; 

это не работает причина индексации, в это время View3 имеет значение индекса 2, когда я нажимаю View3 от View 1.

Так есть ли другой способ, чтобы совать View2 из View3 с помощью кнопки «Назад»?

+0

Это не ясно, что вы хотите перейти от View1 к View3 потребности, толкающие или поп View2 от View3 потребностей внезапная. –

ответ

0

Создать новый класс MYViewController : UIViewController с initWithBackButton:(UIBarButtonItem *)backButton;

@property (nonatomic, strong) UIBarButtonItem *saveBackButton 

- (id)initWithBackButton:(UIBarButtonItem *)backButton { 

    self = [super init]; 

    if(self){ 
     self.saveBackButton = backButton; 
    } 
    return self; 
} 

в корне

Создание 3 свойства VC1, VC2, VC3;

при создании MYViewController

{ 
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    button.frame = CGRectMake(0, 0, width, height); 
    [button addTarget:self action:@selector(iWantToOpenNumber2:) forControlEvents:UIControlEventTouchUpInside]; 

    UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

    self.vc3 = [[MYViewController alloc] initWithBackButton:backItem]; 
} 

- (void)iWantToOpenNumber2:(id)sender { 
    [self dismissViewControllerAnimated: YES completion: ^{ 
     [self presentViewController:self.vc2 animated: YES completion:^{}]; 
    }]; 

} 
-1
[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:NO]; 

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES]; 
+0

Можете ли вы сказать мне, что он будет делать ??? –

+0

Открыть View2 без анимации и View3 с анимацией; когда вы нажмете назад, кнопка view3 будет закрыта, а view2 будет на окне –

+0

извините .. но это не то, о чем я прошу. потому что уже я рассказал об этом методе, что то, что он делает, выше в моем вопросе .. в любом случае спасибо –

0

Импорт view1 в View3 затем создать экземпляр для view1 и вставить этот код

UIViewController *view1Reference = [[UIViewController alloc] init]; 
[self.navigationController popToViewController:view1Reference animated:YES]; 
+0

nope .. Его тоже не работает. –

+0

Вы используете рассказ? – iosLearner

+0

затем используйте настраиваемую кнопку возврата, вызовите действие с этой кнопки, и в этом действии используйте этот код. – iosLearner

0

с помощью кнопки возврата. (Для конкретных индекса)

NSArray *array = [self.navigationController viewControllers]; 
[self.navigationController popToViewController:[array objectAtIndex:2] animated:NO]; 

(для предыдущей точки зрения)

[self.navigationController popViewControllerAnimated:YES]; 
Смежные вопросы