如果我有一个按钮,并且我想使用相同的控制器为默认的“UI页面幻灯片”设置动画,那么当点击“nextbutton”时,我该如何实现?我认为这会奏效,但事实并非如此。
- (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];
}
答案 0 :(得分:7)
您需要实例化同一个类的新实例,而不是推送self,而是将其推送到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];
答案 1 :(得分:0)
来自pushViewController:animated:
的文档:
的viewController
推入堆栈的视图控制器。这个 对象不能是标签栏控制器的实例,它不能 已经在导航堆栈上。
您继续将self
推送到导航堆栈。由于它已经在堆栈中,导航控制器可能忽略了推送,并且因为您正在修改视图中的标签,所以看起来标签正在改变而没有任何动画。 (因为这正是发生的事情。)