2

如果我有一个按钮,并且我想使用相同的控制器为默认的“UI Page Slide”设置动画,那么在单击“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];
}
4

2 回答 2

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];
于 2012-05-25T23:51:37.073 回答
0

从文档中pushViewController:animated:

视图控制器

压入堆栈的视图控制器。此对象不能是选项卡栏控制器的实例,并且它不能已经在导航堆栈上。

你不断推self入导航堆栈。由于它已经在堆栈中,导航控制器可能会忽略推送,并且因为您正在修改视图中的标签,所以看起来标签正在更改而没有任何动画。(因为这正是正在发生的事情。)

于 2012-05-25T23:48:51.940 回答