ejanowski
ejanowski

Reputation: 538

How to call initWith... in swift

I have a an objective-c class (RDAlertView) which create an Alert (UIAlertView for ios < 8 and UIAlertController for ios >=8 )

Here is the code in Objective-C:

RDAlertView* alert = [[RDAlertView alloc] initWithTitle:@"Notification" 
                                                message:@"message" 
                                             completion:completion:^(NSInteger buttonIndex, NSInteger cancelButtonIndex, NSArray *textflieds) { } 
                                      cancelButtonTitle:@"Ok" 
                                      otherButtonTitles:nil];

[alert show];

My question is: How to call this in Swift without any change in my class (if possible)?

Here is a link for the sample project : https://bitbucket.org/ejanowski/rdalertview-issue

Upvotes: 1

Views: 2149

Answers (4)

Adeel Ahmed
Adeel Ahmed

Reputation: 159

UIAlertView is deprecated in iOS 8.

You can show an alert with this code:

var alert = UIAlertController(title: "Alert", message: "test", preferredStyle: UIAlertControllerStyle.Alert)

alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.Default, handler: nil))

self.presentViewController(alert, animated: true, completion: nil)

Upvotes: 1

Dharmesh Kheni
Dharmesh Kheni

Reputation: 71852

I think this is what you need:

var alert = RDAlertView(title: "Notification", message: "message", completion: nil, cancelButtonTitle: "OK", otherButtonTitles: nil)
alert.show()

Hope It will help.

Upvotes: 2

Nagarjun
Nagarjun

Reputation: 6887

UIAlertView.showWithTitle("Hello", message: "Hello World", cancelButtonTitle: "Okay") { alertView, buttonIndex in

// Do something when the alert view is clicked

let anAlertView = UIAlertView(title: "Choice", message: "Pick one", cancelButtonTitle: "No", otherButtonTitles: "Yes", "Maybe")

anAlertView.showWithCompletion { alertView, buttonIndex in

switch buttonIndex
{
   case 1: println("Yes")
   case 2: println("Maybe")
   default: println("No")
}
}

Upvotes: 0

James Webster
James Webster

Reputation: 32066

These methods are treated like constructors. You can call them like this:

var alert = RDAlertView("notification", message:"message", completion:nil, cancelButtonTitle:"Cancel", otherButtonTitles:nil)
alert.show()

Caveat: written without an IDE, careful of syntax errors / typos

Upvotes: 1

Related Questions