UIViewController数据刷新
来源:互联网 发布:淘宝买水烟被警察 编辑:程序博客网 时间:2024/06/06 05:43
</pre>思考:<p></p><p><span style="font-size:14px">正常情况下,UITableViewController可以刷新数据,采用<span class="s1">[</span><span class="s2">self</span><span class="s1">.</span><span class="s3">tableView</span><span class="s1"></span><span class="s4">reloadData</span><span class="s1">]; 但是假使原先的控制器并不是继承自UITableViewController怎么办呢?</span></span></p><p></p><p><span style="font-size:14px">实际开发中,遇到问题如下:</span></p><p><span style="font-size:14px">点击浮层上面的招商银行卡,需要将底层的借记卡尾号,图标,银行名称全部更换掉,浮层背后的页面是UIViewController。</span></p><p><span style="font-size:14px"></span></p><p><span style="font-size:14px">解决方法如下:</span></p><p><span style="font-size:14px">银行卡担保界面的创建是通过封装一个view创建的(UIView继承自UIScrollView),在创建的时候传不同的参数创建。</span></p><p><span style="font-size:14px"></span></p><pre name="code" class="objc">- (void)initializeViewswithparma:(NSString *)cardDesc andAvailableCardList:(TNHotelAvaliableCardList *)availableCardList
- (void)refreshView{ [self.scrollView removeFromSuperview];}
//点击浮层上面的常用卡 更换不同的界面。
- (void)refreshViewController:(TNHotelAvaliableCardList *)cardlist{ [self.creditInfoView refreshView]; self.validInfo = nil; self.bankNumber = nil; self.cardNumber = nil; self.availableCardList = cardlist; [self initializeViewswithparma:self.availableCardList.cardTypeDesc andAvailableCardList:self.availableCardList];}
中间是采用block进行传模型的,方法如下:
采用block进行传递,
在浮层页面点击交换按钮的时候,用一个block记录下点击事件,并且将浮层页面的模型传给银行卡担保界面。
@property (nonatomic, copy) void(^hotelCardTypeDesc)(TNHotelAvaliableCardList *availist);
点击的浮层cell的时候,保存好模型。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ [self.tableView deselectRowAtIndexPath:indexPath animated:YES]; self.selectIndex = indexPath.row; if ([self.changeWays[indexPath.row] isKindOfClass:[TNHotelAvaliableCardList class]]) { TNHotelAvaliableCardList *cardList = self.changeWays[indexPath.row]; [self dimissSelfWithAnimattion:0.0f]; if (self.hotelCardTypeDesc) { self.hotelCardTypeDesc(cardList); } } else { TNHotelGuaranteeWay *way = self.changeWays[self.selectIndex]; [self goToPay:way.type]; }}
在银行卡担保界面:
//block用于回调之前的参数 controller.hotelCardTypeDesc = ^(TNHotelAvaliableCardList *par1) { [self refreshViewController:par1]; };
0 0
- UIViewController数据刷新
- IOS UIViewController相互传递数据
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- UIViewController
- php查询数据库的优化
- Idea15 常用设置(一):JDK、SVN
- 路由器的登录和基础配置
- JSTL核心标签库的使用
- JavaScript面向对象精要(一)
- UIViewController数据刷新
- Oracle 11g笔记——调整表空间和数据文件的大小、移动数据文件、联机重做日志文件、控制文件
- asp.net mvc中加入log4net记录错误日志
- NSException异常处理
- mysql union和union all的区别
- JavaScript面向对象精要(二)
- Android CardView 设置点击效果
- UNPv1第二章:传输层
- 双向链表的相关操作C++实现