的iOS:推相同视图控制器(iOS: Push same view controller)

2019-09-17 12:50发布

如果我有一个按钮,我想用相同的控制器,以动画的默认“UI页幻灯片”,我怎么会让在单击“Next按钮”,当这种情况发生? 我认为这会工作,但事实并非如此。

- (IBAction)NextButton:(id)sender
{
    [self.navigationController pushViewController:self animated:YES];
    NSInteger CurrentQuestionNumber = [QuestionNumber intValue];
    NSInteger NewQuestionNumber = CurrentQuestionNumber + 1;
    QuestionNumber = [NSString stringWithFormat:@"%d", NewQuestionNumber];
    QuestionNumberLabel.text = QuestionNumber;
    QuestionLabel.text = [QuestionsList objectForKey:QuestionNumber];
}

Answer 1:

相反,推动自我,你需要实例同一类的新实例,并推动在替换的self 。 然后,您可以得到相关数据,并将其解析为您的接口-viewDidLoad方法。

SameClassAsSelf *new_self = [[SameClassAsSelf alloc] init...];
new_self.questionNumber = QuestionNumber;
new_self.questionsList = QuestionsList; //if needed
[self pushViewController:new_self animated:YES];
[new_self release];


Answer 2:

从文档pushViewController:animated:

的viewController

被压入堆栈视图控制器。 此对象不能标签栏控制器的一个实例,它不能已经导航堆栈上。

持续推动self到导航堆栈。 因为它已经在栈上,导航控制器可能忽视的推动下,因为你在视图中修改标签,它只是看起来像标签正在改变,没有任何动画。 (因为这正是发生了什么。)



文章来源: iOS: Push same view controller