在开发iOS的过程中,我们都会遇到许多有UITextField的页面,有的页面还不只一个。当我们提交填写的表单时,都会判断,是不是每个输入框都填写完成。效果如下:
如上图,当页面输入框都输入完毕后,才能做下一步操作!但是要每个输入框页面都做判断的话,很麻烦!
所以我们可以利用runtime,提前在BaseViewController里面做好所有判断操作,让有输入框的界面继承Base,通过runtime父类遍历出子类的成员,拿到子类页面所有输入框!这样省了很多事了!
具体代码如下:
BaseViewController.h
#import <UIKit/UIKit.h>
#import "UIButton+toos.h"
@interface BaseViewController : UIViewController
//告诉子类是否所有输入框是否填写完毕的block
@property(nonatomic,copy)void(^isOKBlock)(BOOL isOk);
@end
BaseViewController.m
#import "BaseViewController.h"
//首先导入runtime库
#import <objc/runtime.h>
@interface BaseViewController ()<UITextFieldDelegate,UITextViewDelegate>
{
BOOL isOK;//用来判断是否所有输入框都输入完毕
}
@property(nonatomic,strong)NSMutableDictionary * dic;
@end
@implementation BaseViewController
- (void)viewDidLoad {
[super viewDidLoad];
//刚进来,肯定没输入!所以为NO
isOK =NO;