2 u012138272 u012138272 于 2016.02.11 19:46 提问

iOS通信软件架构跳转问题

想写一个WiFi通信的软件,首页跳转到通信界面以后,打开switch开关,如果这时候返回到首页,再次跳转到通信界面的时候,一切都初始化了,重新创建了一个UIView出来,我想跳转到旧的UIView,信息和switch开关都还是原来的状态,应该怎么架构?用到什么技术?
图片说明

4个回答

leilba
leilba   Rxr 2016.02.12 10:07
已采纳

storyboard和xib没怎么用过,感觉没自定义来的自由。给你一个思路:
你可以自定义这个跳转过程,从结构来看,你是用NavigationController来进行跳转的吧
开始第一次的时候,你是从RootView跳转到SecondView的时候,在RootView里面新建SecondView,再跳转到SecondView,大致如下:

//注意,这个secondView需要你存在RootView里面的SecondView类型的全局变量
secondView = [[SecondView alloc]init];
[self.navigationController pushViewController:secondView animated:YES];

这个secondView你要存好,之后你回来之后第二次要跳转到secondView的时候,不需要新建SecondView,直接用navigationController加载就行了

 [self.navigationController pushViewController:secondView animated:YES];

这样就不会去重新执行viewdidload了。

u012138272
u012138272 根据你的思路,我在appdelegate里面写了个全局变量,用来放UIView的地址,然后默认为空,跳转的时候赋值,第二次要跳转先看是不是为空,不是的话直接跳转。就可以了。
接近 2 年之前 回复
devmiao
devmiao   Ds   Rxr 2016.02.11 21:21
u012138272
u012138272 我看了一下,我从secondview返回到RootView以后,服务器显示客户端还是连接着的,那就说明SecondView还是在的吧?那我为什么不能回到原来的SecondView,而是去appDelegate定义全局变量或者是链接上写的那样?不能像安卓那样返回原来的UIView吗?不然每次都新建一个View,很浪费内存吧?
接近 2 年之前 回复
oyljerry
oyljerry   Ds   Rxr 2016.02.11 23:04

你保存这些状态到plist等。然后再view的didviewappear等中读取设置,初始化控件

u012138272
u012138272 我看了一下,我从secondview返回到RootView以后,服务器显示客户端还是连接着的,那就说明SecondView还是在的吧?那我为什么不能回到原来的SecondView,而是去appDelegate定义全局变量或者是保存到plist中?不能像安卓那样返回原来的UIView吗?不然每次都新建一个View,很浪费内存吧?
接近 2 年之前 回复
u012138272
u012138272   2016.02.12 19:30

解决了,思路:在appdelegate里面创建全局变量,默认为nil,跳转的时候赋值,第二次跳转的时候先判断是不是为空,不是的话直接跳转。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!