关闭

同一个界面中 向封装的其中一块View中传值问题

标签: 传值问题
353人阅读 评论(0) 收藏 举报
分类:

在当在一个界面中,向自己封装的一块view中传值:这种情况属于既不属于正向传值又不属于反向传值。
可以按正向传值的思路来做,但是这样实现时会发现,传过去的值为空,打印后发现,先创建的封装的那块view,然后才传值的,而封装的那块view在创建的界面是需要这个值的,而这个值在创建时并没有传过来。所以正确的做法应该是在创建的时候就应该将值传过来。
例如:
某个控制器的view是tableView,其footerView是封装的一个继承于UIView的单独的view,应该将封装的这个view的创建的方法重写,重写方法中写入要传的值
封装的view的.h文件:

#import <UIKit/UIKit.h>
- (instancetype)initWithFrame:(CGRect)frame with:(NSString *)count;
@end

.m文件

#import "returnDetailView.h"


@implementation returnDetailView


- (instancetype)initWithFrame:(CGRect)frame with:(NSString *)count
{
    self = [super initWithFrame:frame];
    if (self ) {
        [self layoutUIWith:count];
    }
    return self;
}

- (void)layoutUIWith:(NSString *)count
{


     UIButton *btn = [[UIButton alloc] init];
    btn.frame = CGRectMake(self.frame.size.width-130, _amountName.frame.origin.y, 105, 30);
    btn.flowerCount = count;
  [self addSubview:btn];



}

在tableView的界面中,创建footerView时,

_footerView = [[returnDetailView alloc]initWithFrame:CGRectMake(BOUNDS.origin.x+gap, CGRectGetMaxY(_returnTableView.frame), BOUNDS.size.width-gap, 200)  with:_count];//创建时就将值传过去了,所以在封装的footerView中,创建时传过去的值就可以用
_footerView.backgroundColor = CLColor(229, 234, 237);
    _returnTableView.tableFooterView = _footerView;
    _footerView.delegate = self;
0
0
查看评论

android中activity向service中传值

和activity中互相传值类似 这里我是用的intent的,没用广播来,因为本身测试数据量小,就不用之 如何启动service?在activity中通过startService(intent)即可,同样intent.putStringExtra() 然后再service中的onStart函数...
  • Jave_
  • Jave_
  • 2011-10-25 20:28
  • 6845

Redis 中list的实现(地址传值)

#include "adlist.h" #include #include #include #include int main() { struct list *t; t=listCreate(); int i; char *pb[5]; char buf[25]...
  • likun_tech
  • likun_tech
  • 2012-02-20 22:30
  • 1066

Fragment向另一个Activity传值

Fragment中    Intent intent = new Intent(getActivity().getApplicationContext(), WeiZhangActivity.class);          ...
  • tiantian_kuaile
  • tiantian_kuaile
  • 2016-10-27 22:03
  • 908

【android】两个view共用同一个animation对象的问题

问题描述:view1调用startAnimation(animation);播放动画, 1、假设view1动画播放结束后,view2也调用startAnimation(animation);来播放动画 这时候你会发现view2播放动画的同时view1也跟着播放动画。 2、假设view1动画还没...
  • u011494050
  • u011494050
  • 2015-04-14 14:38
  • 1477

inflate获取view 的几种方法

通俗的说,inflate就相当于将一个xml中定义的布局找出来.      因为在一个Activity里如果直接用findViewById()的话,对应的是setConentView()的那个layout里的组件.      因此如果你的Activity里如果用到别的layout,比如对话框...
  • u010509143
  • u010509143
  • 2014-04-04 11:01
  • 1594

angular2向组件中传值的问题

今天在看angular2的项目ng2-admin时, 发现了其中向组件传值的一个问题: ba-card是一个组件, 其中有一个输入属性为: @Input cardTitle: string, 而在以往的情况在其他组件中使用子组件时向其中的输入属性传值使用的是’[]’的形式, 比如: <...
  • Jutal_ljt
  • Jutal_ljt
  • 2017-09-19 15:53
  • 314

Fragment向activity中传值

Fragment向activity中传值 1.在Fragment中写一个回调接口   2.在activity中实现这个回调接口 3,在Fragment中onAttach 方法中得到activity中实现好的 实例化接口对象 4,用接口的对象  进行传值 ...
  • shanxuyang
  • shanxuyang
  • 2015-07-28 22:56
  • 12142

利用同一个Activity界面实现二个不同的界面之间的跳转

先看图,再描述 上图的效果中,我们看到是由三个界面组成:点我界面, 设置界面, 自动返回界面组成,并实现了checkBox保存状态和弹出dialog.但是实际上,只用了点我界面和设置界面(和自动返回界面共用一个界面).所以实现如下:分散实现如下 第一步:checkBox的保存状态//直接设置BU...
  • willba
  • willba
  • 2017-06-08 15:02
  • 466

android 封装一个view模块

android 封装一个view模块<br /> android ...
  • fhy_2008
  • fhy_2008
  • 2011-03-23 15:54
  • 3135

Android布局文件.xml中的自定义属性(结合封装的自定义View)

AndroidManifest.xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.cctvjiatao.xmlset" ...
  • lvyoujt
  • lvyoujt
  • 2016-03-12 22:14
  • 923
    个人资料
    • 访问:93625次
    • 积分:1956
    • 等级:
    • 排名:千里之外
    • 原创:100篇
    • 转载:54篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论