我有几个按钮为另一个类设置一些变量(通过extern)。事情就是这个变量会改变滑块的maximumValue和UIImage的图像。
我是通过viewDidLoad方法执行此操作,问题是视图加载仅在我第一次加载该控制器时才起作用。
以下是我在Home.m上加载控制器的代码:
- (void)openPagesFrom:(int)pageStart to:(int)pageEnd name:(NSString *)title{
[…]
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:self.view cache:YES];
[UIView setAnimationDuration:0.7];
if(self.pagesController == nil){
Pages *pagesControllerCopy = [[Pages alloc] initWithNibName:@"Pages" bundle:nil];
self.pagesController = pagesControllerCopy;
[pagesControllerCopy release];
}
[self.view insertSubview:pagesController.view atIndex:1];
[UIView commitAnimations];
}
我在Pages.m上删除了这样的视图:
- (IBAction)goHome:(id)sender{
// animate transition
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationBeginsFromCurrentState:YES];
[UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:self.view.superview cache:YES];
[UIView setAnimationDuration:0.7];
[self viewWillAppear:YES];
[super viewWillAppear:YES];
// ****************************
[self.view removeFromSuperview];
// ****************************
[self viewDidDisappear:YES];
[super viewDidAppear:YES];
[UIView commitAnimations];
}
在同一个文件中,viewDidLoad方法如下所示:
- (void)viewDidLoad {
[super viewDidLoad];
[myScrollView setContentSize:CGSizeMake(1024, 1420)];
NSString *initPage = [NSString stringWithFormat:@"P%d.jpg",currentPage];
imagePlaceholder.image = [UIImage imageNamed:initPage];
// set new values for Slider
pageSlider.minimumValue = currentPage;
pageSlider.maximumValue = totalBookPages;
}
我知道如何才能这样做,所以每次更改其中一个按钮时,它总会得到我的值吗?我对如何提高效率持开放态度。一个人可以正确地卸载整个ViewController,我显然做得不对。也许有一个更简单的解决方案。
感谢。
答案 0 :(得分:2)
尝试使用-(void)viewWillAppear:(BOOL)animated
方法!
那个方法/应该/适合你!