求教大神指点!iosopendev下 怎么给一个类增加类方法???

假设需要在一个页面添加一个按钮控件 怎么样才能给按钮添加点击方法??用的captain。。。求教!!

ui控件可以完全在runtime創造啊

张总!感谢您的指点!我接下来的问题肯定会挨您狂批!!!我网上搜集也查看了runtime的用法 ,但是没有看到有关UI控件的。。。我知道这个问题问的很无语!。。得罪您了!很抱歉。。。自己也觉得很丢人!虚心向您学习!!!

。。。。。。。。。您理解錯了
是類似 UIButton * xyz=[[UIButton alloc] initWithType:XXXX];
xyz.frame=CGRectMake(1,2,3,4);
[xyz addTarget:self action:(clicj:) forControlEvents:UIControlEventTouchUpInside];

然後再把這個button加到當前的view裡就可以了啊,還是我對您的問題理解錯了

你說的是click:這個方法怎麼添加的話?
class addmethod就可以了

您好! 我之前也是这样操作的,不过这样在我的.mm文件里面的按钮能添加(我测试的加窗口)但是按钮的点击事件没有响应。。。

我尝试了用performselect的那个方法调用(这样肯定不行)就是点击效果不响应。。打扰了!

您的代碼有嗎

恩,有的 已经被我多次修改了。我来恢复一下。。

张总 我怎么把代码发您呢?

簡單寫了個demo,馬上穿行來

好的!真心感谢您的耐心指导!。。

HelloUIKit.zip (31.6 KB)

解釋在註釋裡,我加的那個uibutton你也許找不到,自己調試位置啥的吧反正我這裡測試似乎是沒問題?

好的!谢谢您了!我自己来多尝试。。

张总!再次打扰您了!之前的添加类方法已经可以了,我现在碰到的问题是 ,我hook的是一个控制器类(根据cycript找到的页面控制器),但是想给控制器的视图添加一个子视图,这时候会出现没法获取到view的情况,依据
UIView *vc = [(UIViewController *)objc_getClass(“xxxViewController”) view];
[vc addSubview:button];
这样的写法 在.mm中可以编译通过 但是在手机上测试时,一运行到这个页面就crash,所以这样写的错是出在哪里呢??等待您的批评指正。。。。

…這是instance裡才能拿到的啊。。。。。

嗯?不是很明白您的意思。。

您能说的再多点吗?关于这块不是很明白!可能这样太不礼貌了,我是真的很愿意去学,但是现在资源太少。。。也是自己笨,但是还是希望能跟您虚心学习下。。。。

google “類方法 實例方法”

明白 我忽略了这点!但是在hook xxxviewcontroller类时候,不能识别出是控制器类 自然没法点语法拿到view 我是不是去二进制文件的头文件里面找到对应的.h文件拖至工程 这样的话 如果该类中牵扯很多其他的类 也得挨个添加.h文件 这样工程量就会加大了 况且即使这样也没法保证能够获识别出xxxviewconttroller是控制器类。。。