Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使最新的UISegmentedControl选项卡在单击它的应用程序会话期间保持不变?_Ios_Nsuserdefaults_Uisegmentedcontrol_User Experience_Save - Fatal编程技术网

Ios 如何使最新的UISegmentedControl选项卡在单击它的应用程序会话期间保持不变?

Ios 如何使最新的UISegmentedControl选项卡在单击它的应用程序会话期间保持不变?,ios,nsuserdefaults,uisegmentedcontrol,user-experience,save,Ios,Nsuserdefaults,Uisegmentedcontrol,User Experience,Save,因此,我有一个由四个选项卡组成的UISegmentedControl。我需要做的是使最近点击的标签在整个应用程序会话期间都能被记住。也就是说,当应用程序第一次启动时,将选择第一个UISegmentController选项卡,然后用户单击第三个选项卡,然后用户决定转到应用程序中的其他视图,然后当用户返回到带有UISegmentedControl最新的视图时(在本例中为第三个)选项卡仍处于选中状态 我已经看到NSUserDefaults类对于保存设置很好,但据我所知,NSUserDefaults类保

因此,我有一个由四个选项卡组成的
UISegmentedControl
。我需要做的是使最近点击的标签在整个应用程序会话期间都能被记住。也就是说,当应用程序第一次启动时,将选择第一个
UISegmentController
选项卡,然后用户单击第三个选项卡,然后用户决定转到应用程序中的其他视图,然后当用户返回到带有
UISegmentedControl
最新的视图时(在本例中为第三个)选项卡仍处于选中状态

我已经看到
NSUserDefaults
类对于保存设置很好,但据我所知,
NSUserDefaults
类保存数据的方式是,即使在应用程序被关闭然后启动时,它也会恢复以前保存的设置。这是我不希望看到的,我只希望应用程序保存最近选择的选项卡,以用于选择应用程序会话的长度

我希望我说的有道理,如果需要更多的信息/代码/解释,请让我知道


非常感谢。

我不明白的是,为什么要重新加载包含segmentedcontrol的视图?如果您实现了普通的MVC方案,默认情况下应该记住您的UI状态。在userdefaults中存储这样的东西太糟糕了。我假设您有一个tabbar控制器作为根控制器,所以请检查您是否没有在ViewWillDisplay或ViewDidDisplay上重置UI状态。
从iPhone发送。

好吧,这是一个非常棘手的问题

我意识到我需要重置
viewwillbeen:
中的UI设置,因为每次要求显示视图时都会调用
viewwillbeen:
,而
viewDidLoad:
只在第一次创建视图时调用

这张图帮助我认识到:
.

是的,我刚刚修复了它,我没有在ViewWillDisplay中重置UI状态。感谢您的及时回复。