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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
iOS开发:两个独立应用之间的通信跳转
两个独立App之间的跳转通信,相信做过开发的同志们都不陌生,其实最常见最熟悉的App间的跳转通信就是第三方分享、登录、支付之类的,这些第三方的sdk都封装好了,集成起来也比较简单,举个栗子,比如第三方支付功能的集成,首先你要在plist文件里面设置微信、支付宝、百度钱包等对应的URL Schemes。具体如下所示:        一、概念        一个完整的URL组成包括:协议类
分享一个通信网关软件架构
     问:      1、首先何为通信网关?      2、通信网关有何用处?       3、为什么要用通信网关?           答:      1、通信网关是一个包含丰富硬件通信接口和通信协议的通信代理设备,同时硬件接口和通信协议可按需定制、扩展。      2、如图1所示,通信网关可通过代理使各种硬件设备接入互联网,同时通过扩展硬件接口和通信协议它几乎可以将任何含通信接口的硬件设备...
分层结构软件各层次之间通信
对软件进行层次化分解通常是解决软件复杂性的一种手段,在操作系统、网络协议栈设计中屡见不鲜。 1. 当上层模块需要传递数据给下层模块时,调用一个函数或者过程即可­搞定。 2. 那么,反过来,当下层模块需要把数据传递给上层模块的时候,又当如何处理呢。 2.1 从网络协议栈的实现情况来看,似乎都是在下层模块中放一个队列,要递交到上层­模块的数据都按照FIFO的顺序丢在这个队列里面。这个
OBJECTIVE-C编程之道 IOS设计模式解析
IOS设计模式解析-----ios软件架构基础必读
ViewController之间通信,传递参数
从FirstViewController跳转到SecondViewController,当从SecondViewController返回时,如果想把数据回传给FirstViewController,可以用代理的方法,FirstViewController中这样使用:FirstViewController.h @interface FirstViewController : UIViewControl
Unity 实现跳转ios 设置界面
Unity 实现跳转ios 设置界面 一、功能需求 iOS网络设置检查,如果没有网络可能是用户选择关闭了 网络链接,ios可以从游戏内直接跳转到设置网络开关。 二、网络检测 直接上代码 public static bool HasNetwork() { return Application.internetReachability != Netw...
IOS修复两个导航栏状态不一致导致跳转时,导航栏黑底的问题
1. -(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [self.navigationController setNavigationBarHidden:NO animated:NO]; } -(void)viewWillAppear:(BOOL)animated{ [super v
在ios中自定义tabbar跳转隐藏问题
自定义tabbar高度的跳转隐藏问题 在ios开发(http://www.maiziedu.com/course/ios/)中,如何自定义tabbar高度的跳转隐藏问题,比如和系统自带的tabbar高度不一样导致的有一条线的问题,还有push时动画效果等等一些列问题不在这里累述了,当然,思路有很多,可以参考以上链接自己琢磨琢磨,好了,下面直接上个人认为完美解决办法。 需求 1、自定义tabb
iOS WebView重定向新开界面问题
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和图片上传 LaTex数学公式 UML序列图和流程图 离线写博客 导入导出Markdown文件 丰富的快捷键 快捷键 加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
模态跳转(present)后再push没反应
原因:模态后的页面没有获取模态页的navigation,解决办法:模态之前,先获取navigation,借助navigation就可以了;代码如下:                 UserManagerViewController *userManagerVC = [[UserManagerViewController alloc] init];                 UINavi