Coder Social home page Coder Social logo

ezalertcontroller's Introduction

EZAlertController

CocoaPods Compatible

Easy Swift UIAlertController

  • One line setup for all UIAlertControllers
  • Button action with closures instead of selectors
  • Easily customizable
  • Easy action sheets

Swift 2.0 is maintained in this branch

Usage

One Button Alert

EZAlertController.alert("Title")
EZAlertController.alert("Title", message: "Message")
EZAlertController.alert("Title", message: "Message", acceptMessage: "OK") { () -> () in
    print("cliked OK")
}

EZAlertController

Multiple Button Alerts

EZAlertController.alert("Title", message: "Message", buttons: ["First", "Second"]) { (alertAction, position) -> Void in
    if position == 0 {
        print("First button clicked")
    } else if position == 1 {
        print("Second button clicked")
    }
}

EZAlertController

// With Preferred Button Style along with all alerts in a single closure
// Here the Logout button will be red in color to show that it is a destructive action
EZAlertController.alert("Title", message: "Message", buttons: ["Cancel","Logout"], buttonsPreferredStyle:[.default, .destructive]) { (alert, position) in 
    if position == 0 {
        print("Cancel button clicked")
    } else if position == 1 {
        print("Logout button clicked")
    }
}

IMG_0920

Action Sheet

// With individual UIAlertAction objects
let firstButtonAction = UIAlertAction(title: "First Button", style: UIAlertActionStyle.Default, handler: { (UIAlertAction) -> Void in
    print("First Button pressed")
})
let secondButtonAction = UIAlertAction(title: "Second Button", style: UIAlertActionStyle.Default, handler: { (UIAlertAction) -> Void in
    print("Second Button pressed")
})

EZAlertController.actionSheet("Title", message: "message", actions: [firstButtonAction, secondButtonAction])

// With all actions in single closure
EZAlertController.actionSheet("Title", message: "Message", buttons: ["First", "Second"]) { (alertAction, position) -> Void in
    if position == 0 {
        print("First button clicked")
    } else if position == 1 {
        print("Second button clicked")
    }
}

EZAlertController

Customizable

let alertController = EZAlertController.alert("Title") // Returns UIAlertController
alertController.setValue(attributedTitle, forKey: "attributedTitle")
alertController.setValue(attributedMessage, forKey: "attributedMessage")
alertController.view.tintColor =  self.view.tintColor
...

Objective-C support

#import "ProjectName-Swift.h"

...

[EZAlertController alert:@"Title" message:@"Message"];

Requirements

  • Swift version 4.0

Installation

Install via CocoaPods

You can use CocoaPods to install EZAlertController by adding it to your Podfile:

platform :ios, '8.0'
use_frameworks!

pod 'EZAlertController', '3.2'

For current master branch

pod 'EZAlertController', :git => "https://github.com/thellimist/EZAlertController.git", :branch => 'master'

Install Manually

  • Download and drop 'EZAlertController.swift' in your project.

Improvement

  • Feel free sending pull requests.

License

  • EZAlertController is available under the MIT license. See the LICENSE file.

Keywords

swift, alert, AlertView, AlertViewController, UIAlertView, UIAlertViewController

ezalertcontroller's People

Contributors

128keaton avatar 4ndrey avatar anand2nigam avatar bishalg avatar bitdeli-chef avatar dmorrow avatar dotwasim avatar esqarrouth avatar ezefranca avatar ioskunal avatar julienkode avatar onmotion avatar readmecritic avatar shadeapps avatar thellimist avatar ygweric avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

ezalertcontroller's Issues

Set Tint Color?

Hi guys, how do we set the Tint Color of the overall dialog in this awesome pod?

Always receive this warning!

Attempting to load the view of a view controller while it is deallocating is not allowed and may result in undefined behavior (<UIAlertController: 0x7aa4b600>)

Build Error with XCode 8.1

On version 3.1 and I get this error with xcode 8.1:

screen shot 2016-11-01 at 10 46 05 am

Should it be self.init(title: title, style: preferredStyle) ?

Looking for additional maintainers of this project

I've been working on different technologies lately. Keeping up with Swift's fast iterations takes a lot of my time. Let me know if you are interested in reviewing PRs, managing issues and handling releases of this project.

Thanks

Using EZAlertController in Objective-C code

I'm wondering if it's possible to use this fabulous control in legacy Objective-C code alongside Swift classes?

Other Swift code works fine for me, but EZAlertController is somehow not recognized

ezalert

P.S. Thanks for really nice and useful control!

Presenting on keyWindow.rootViewController is not a good idea

This is a very naive way to look at windows and controllers in this day and age. There are many cases where this assumption is incorrect. Another problem would be calling your alert method multiple times.

The more correct way would be to display the alert controller on top of a clear root controller in a window of its own. Then you enter into the territory of managing multiple alerts displayed one after the other. And lo and behold, your have implemented _UIAlertControllerShimPresenter and _UIAlertControllerShimPresenterWindow, the internals of the now deprecated UIAlertView.

Swift 3 in the works?

Hi thellimist,

just wondering if you're still working on this project and to upgrade it to work with Swift 3? I use your lib a lot and it's very helpful. Thanks a lot for the great work.

Gives Warning for no reason

Every Time I use this , it gives me a warning stating that "Result of call to 'actionSheet(_:message:sourceView:buttons:tapBlock:)' is unused"

Use optionals for message

What do you think about using optionals in message?

It could look like so:

@discardableResult open class func alert(_ title: String, message: String?) -> UIAlertController { return alert(title, message: message ?? "", acceptMessage: "OK", acceptBlock: { // Do nothing }) }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.