zoukankan      html  css  js  c++  java
  • UIActionSheet减少在控制器再写一次代理

    利用 CFRunLoopRun 和 CFRunLoopStop 方法来将 UIActionSheet 改造成同步的调用。

    #import <Foundation/Foundation.h>

    #import <UIKit/UIKit.h>

    @interface SynchronizedUIActionSheet : NSObject

    - (NSInteger)showInView:(UIView *)view;

    @end

    //

    //  SynchronizedUIActionSheet.m

    //  SynchronizedUIActionSheet

    //

    //  Created by Evan on 16/6/29.

    //  Copyright © 2016年 Evan. All rights reserved.

    //

    #import "SynchronizedUIActionSheet.h"

    @interface SynchronizedUIActionSheet ()<UIActionSheetDelegate>

    @property (nonatomic, strong) UIActionSheet *actionSheet;

    @property (nonatomic, assign) NSInteger selectedIndex;

    @end

    @implementation SynchronizedUIActionSheet

    - (NSInteger)showInView:(UIView *)view

    {

          _actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:@"111" otherButtonTitles:nil, nil];

        [_actionSheet showInView:view];

        CFRunLoopRun();

        return _selectedIndex;

    }

    - (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

        _selectedIndex = buttonIndex;

        _actionSheet = nil;

        CFRunLoopStop(CFRunLoopGetCurrent());

    }

    @end

  • 相关阅读:
    28,intellij idea工程包含scala代码这样打包
    1、调侃程序员
    2 20个常用正则表达式
    27 Java动态加载第三方jar包中的类
    26 查看文件内容有多少行?
    25 读取jar包内log4j.properties文件方法
    MySQL表类型
    Hibernate-检索策略
    Hibernate-Native SQL
    Hibernate-Criteria Queries
  • 原文地址:https://www.cnblogs.com/happyEveryData/p/5629767.html
Copyright © 2011-2022 走看看