zoukankan      html  css  js  c++  java
  • UIView+ViewController.h 点击控制器上视图,使视图push下个视图控制的封装

    文件名: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视图,这个可以自己设置;

  • 相关阅读:
    案例5-1.3 整型关键字的散列映射 (25分)--散列表(除留余数法+线性探测法)
    基础实验5-2.2 电话聊天狂人 (25分)-散列表
    习题8.4 畅通工程之最低成本建设问题 (30分)--最小生成树
    练习4.2 平衡二叉树的根 (25分)
    案例7-1.5 与零交换 (25分)--dfs
    习题2.8 输出全排列 (20分)--dfs
    nginx 日志切割
    mysql添加索引
    mysql常见错误码及说明
    MYSQL数据类型分类
  • 原文地址:https://www.cnblogs.com/answer-Allen/p/4815316.html
Copyright © 2011-2022 走看看