2013-04-12 19 views
0

我有从0值UISlider为1上的应用程序设置UISlider值开始

的问题是,如果我把它滑动到一个值,然后关闭应用程序,并重新打开应用程序时,UISlider都留在了由滑动设置的值。基本上它记得它最后的价值。

我已经尝试了一些代码来设置它,以便它可以始终在0时ViewController出现,但它不起作用。我想这个代码viewDidLoad

mySlider.value = 0; 

而且我也试过这样:

[mySlider setValue:0] 

但他们都没有工作。

如何在应用程序打开时将UISlider始终置于0?

+0

你是什么意思关闭应用程序,发送到后台或杀死。 – Madhu

+0

我相信他意味着发送到后台,因为杀死它并重新打开ViewController会再次调用viewDidLoad,所以没问题。 – rdurand

+0

是的,我的意思是把它发送到背景,而不是杀死它。 – tribulant

回答

3

如果您不想看到滑块值更改,请将您的代码([mySlider setValue:0])置于viewWillAppear之内,如果您想要看到它的更改,请将其置于viewDidAppear之内。

viewDidLoad仅在创建视图时调用,它在加载后显示时未调用(例如,退出应用程序并返回,从UINavigationController导航中的推/等)。

请注意,如果您想查看动画,则可以使用此方法:[mySlider setValue:0 Animated:YES];

+0

谢谢你的帮助,我很感激。我可能做错了什么,但如果我第一次打开应用程序,它就可以工作。把应用程序放在后台并重新打开不会再激发这个viewDidAppear。在将应用程序置于后台之前,滑块值仍然是最后剩下的值。有任何想法吗? – tribulant

+0

viewDidAppear内部的日志记录仅在应用程序第一次打开时有效,它在将应用程序发送到背景并再次打开后不会再次记录。 ' - (void)viewDidAppear:(BOOL)animated {switchSlider setValue:1 animated:YES]; [self valueChanged:nil]; NSLog(@“viewDidAppear called”); }' – tribulant

+0

我在AppDelegate中将'viewDidAppear'添加到'applicationWillEnterForeground'并解决了这个问题。我不知道这是否是正确的方法,因为我是新来的Objective-C – tribulant

相关问题