标签:
文件名:UIView+ViewController.h
#import <UIKit/UIKit.h>
@interface UIView (ViewController)
- (UIViewController *)viewContoller;
@end
UIView+ViewController.m
#import "UIView+ViewController.h"
@implementation UIView (ViewController)
- (UIViewController *)viewContoller {
UIResponder *next = self.nextResponder;
do {
if ([next isKindOfClass:[UIViewController class]]) {
return (UIViewController *)next;
}
next = next.nextResponder;
} while (next != nil);
/**
* 循环结束未找到
*/
return nil;
}
@end
返回的事一个视图控制器,接下来我们看看具体使用
#import "MyView.h"
#import "UIView+ViewController.h"
#import "SecondViewController.h"
新建一个类MyView继承与UIView,给button一事件
@implementation MyView
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(90, 90, 90, 90);
button.backgroundColor = [UIColor redColor];
[button addTarget:self action:@selector(buttonAction) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:button];
}
return self;
}
- (void)buttonAction {
SecondViewController *secondCtrl = [[SecondViewController alloc] init];
[self.viewContoller.navigationController pushViewController:secondCtrl animated:YES];
}
在视图控制其中,创建MyView的一个对象
MyView *myView = [[MyView alloc] initWithFrame:CGRectMake(0, 0, 375, 200)];
myView.backgroundColor = [UIColor grayColor];
[self.view addSubview:myView];
另外还需要一个push视图,这个可以自己设置;
UIView+ViewController.h 点击控制器上视图,使视图push下个视图控制的封装
标签:
原文地址:http://www.cnblogs.com/answer-Allen/p/4815316.html