use*_*964 2 uitabbarcontroller uitableview uiviewcontroller uiswitch ios
我有一个包含三个选项卡的tabBarController.一个选项卡是一个设置选项卡,它有三个UISwtch,它们包含在UITableView中,它将数据存储在[NSUserDefaults standardUserDefaults]中.我正在测试用户可能做的所有事情,并发现了一个小问题.当设置选项卡在前台并退出应用程序时,输入手机的主要设置,更改我的应用程序的设置,退出设置然后重新启动我的应用程序,设置选项卡仍在前台但切换开关不反映上一步中所做的更改.如果我切换到另一个选项卡,然后返回到我的设置选项卡,现在会反映更改.
我已经尝试了所有东西,viewWillAppear,viewDidAppear,[theTtableView reloadData],什么都行不通.奇怪的是,恢复时调用完全相同的函数,并且设置选项卡位于forground中,因为当另一个选项卡位于前台时,我选择设置选项卡.即使viewDidAppear和viewWillAppear都在设置控制器上被调用,我也无法刷新它.
我知道用户可能不太可能在应用程序设置选项卡中,然后退出并转到手机设置选项卡进行更改,然后返回到应用程序,但它让我疯了,我需要解决这个问题.
我已经尝试了我能在这里找到的所有建议,仍然无法使其发挥作用.
有任何想法吗?
谢谢
Vad*_*gin 12
叫这个
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(refreshViews) name:UIApplicationWillEnterForegroundNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
在视图控制器的初始化中(用refreshViews刷新开关的方法的选择器替换以反映实际值).不要忘记[[NSNotificationCenter defaultCenter] removeObserver:self]进去dealloc.
或者,您可以在viewDidLoad或viewWillAppear注册viewDidUnload或注销或viewWillDisapper分别注册通知.
| 归档时间: |
|
| 查看次数: |
4965 次 |
| 最近记录: |