• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > SubViewController向数组增加一项数据,显示在RootViewController里面的tableView

SubViewController向数组增加一项数据,显示在RootViewController里面的tableView

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了SubViewController向数组增加一项数据,显示在RootViewController里面的tableView等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: SubViewController向数组增加一项数据,显示在 RootViewController里面的tableView
描述:

有两个UIViewController:RootViewController,SubViewController.
RootViewController有一个tableView,tableView里面的数据来自数组array,怎么通过SubViewController向数组array增加一项数据,然后显示在
RootViewController里面的tableView上?类似手机里面的联系人。。


解决方案1:

Array 属于复杂类型,采用引用传递。

核心思想很简单:通过 segue(或不采用 segue)将前一个 UIViewController 内存里维护的 Array 直接传递给下一个 UIViewController 的一个成员变量,本质上那个变量只是一个指针,指向同一片内存区域。

在下一页直接给数组增加一项即可,回到父 UIViewController 刷新页面就能显示结果了。

解决方案2:

其实这个涉及到的东西是oc的基础知识:代理,通知,block等。
上面的几种方式都可以实现你想要的效果。

具体实现:

(这里只说明代理模式的实现方式,其他方式雷同,但是不一样原理,题主自行Google)

场景:SubViewController一个按钮btn(绑定函数changeRoot),点击后加入到RootViewController的array一个数值,并刷新数组

代理模式

  • 声明代理

SubViewController.h


@protocol SubViewControllerDelegate <NSObject> -(void)changeArray:(NSString *) str;//声明代理方法 @end @interface SubViewController : UIViewController<UITableViewDataSource,UITableViewDelegate> { id<SubViewControllerDelegate> delegate; } @property (nonatomic, unsafe_unretained) id<SubViewControllerDelegate> delegate;

在SubViewController.m的btn绑定事件中实现代理方法


- (void)changeRoot{ [_delegate changeArray:@"change"]; }
  • 接收代理

在RootViewController里面接收代理(注意这里需要对SubViewController实例进行delegate = self操作)

-(void)changeArray:(NSString *) str
{
    [self.array addObject:str];

    [self.tableview reload];

}



分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SubViewController向数组增加一项数据,显示在RootViewController里面的tableView

相关文章

  • 2017-06-05 如何高效的准确的获取一个工程所有控制器的viewdidload方法的执行时间?
  • 2017-06-05 有哪些交互效果是android和ios都能实现,但是js不能实现的
  • 2017-06-05 cocoapodscocoapods的问题
  • 2017-06-05 iOSUDPsocket通讯使用GCDAsyncUdpSocket服务器无法接受到消息?求大神解决
  • 2017-06-05 iOS项目编译错误"_OBJC_CLASS_$_FCUtility",referencedfrom:
  • 2017-06-05 两个手机A,B同一app,A显示二维码,B扫描,A如何直接知道B扫面完成?
  • 2017-06-05 swift2我该如果把keyboard加在view上面,而不是让它自动跳出来
  • 2017-06-05 IOSAFNPOST请求Code=-1011internalservererror500。
  • 2017-06-05 iOS跳转到非好友聊天界面
  • 2017-06-05 iPad应用未铺满iPad屏幕

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 问题背后的问题读后感iOSGCD队列阻塞问题
    • 关于NSBundlepathForResource()取本地文件路径问题
    • iOSQuotaExceededErrorDOMException22
    • (swift)在一个uiview里放了4个tableview,为啥他们样式不一样啊
    • swift纯新手,请教各位swift中使用self=superinit遇到错误
    • cell中放tableview,如何解决cell中tableview和外部tableview之间的手势冲突。
    • iPad越狱
    • Masonry循环创建一竖列button如何实现
    • iOS单聊页面
    • UIActivityViewController分享

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有