How to make the UIAlertView call itself again? - iphone

Below is the scenario.
I have created a UIAlertView in viewDidLoad of the Controller in which I display the Alert.
loginAlert = [[UIAlertView alloc] initWithTitle:#"Check"
message:#"Ok"
delegate:nil
cancelButtonTitle:#"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
I call it as [alert show] and it is displayed.
When user press Ok, it goes to textEndEditing delegate method and from if nil/worng value was entered, I call [alert show] again.
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if ([textField.text length] > 0)
{
}
else
{
NSLog(#"Checking");
[loginAlert show];
}
}
But its not displayed again. Please tell me what to do?

Instead of delegate:nil, put delegate:self
loginAlert = [[UIAlertView alloc] initWithTitle:#"Check"
message:#"Ok"
delegate:self
cancelButtonTitle:#"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];

First change your alert view delegate to self.
loginAlert = [[UIAlertView alloc] initWithTitle:#"Check"
message:#"Ok"
delegate:self
cancelButtonTitle:#"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
[loginAlert show];
Then in the alert view delegate method check the length of the text and show the the alert again if empty.
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0) {
if ([[loginAlert textFieldAtIndex:0].text length] > 0)
{
}
else
{
NSLog(#"Checking");
[loginAlert show];
}
}
}

How about making it simple .. ?
- (void)textFieldDidEndEditing:(UITextField *)textField
{
if ([textField.text length] > 0)
{
}
else
{
NSLog(#"Checking");
loginAlert = [[UIAlertView alloc] initWithTitle:#"Check"
message:#"Ok"
delegate:self
cancelButtonTitle:#"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
[loginAlert show];
}
}

Try this:
loginAlert = [[UIAlertView alloc] initWithTitle:#"Check"
message:#"Ok"
delegate:self
cancelButtonTitle:#"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0) {
[yourTextField resignFirstResponder];
}
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
if (textField==yourTextField) {
if ([yourTextField.text isEqualToString:#""] || yourTextField.text == nil) {
[yourAlert show];
}
}
}
Also see this for your problem:
Keep UIAlertView displayed
uialertview called more than once

Set delegate self instead of nil and implement my code.
loginAlert = [[UIAlertView alloc] initWithTitle:#"Check"
message:#"Ok"
delegate:self
cancelButtonTitle:#"Ok"
otherButtonTitles:nil, nil];
[loginAlert setAlertViewStyle:UIAlertViewStyleSecureTextInput];
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 0)
{
[self.view endEditing:YES];
}
}

-(void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex{
if (buttonIndex == 0)
{
// Your code write in this method and show your alert
}
else
{
[loginalert show];
}
}
i hope this code useful for you.

Related

Same UIalertview for multi button, multi view

In my application ,i having 4 UIbuttons .On click each button showing same alert view contains learn and play option,while clicking alert view, want to show the different view depends on the uibutton selection.Here my code for alert view. please help me to perform diffrent view on click option.
-(IBAction)animals
{
UIAlertView *alert1=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert1 show];
}
-(IBAction)birds
{
UIAlertView *alert2=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert2 show];
}
-(IBAction)direct
{
UIAlertView *alert3=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert3 show];
}
-(IBAction)fruit
{
UIAlertView *alert4=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert4 show];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if ([buttonTitle isEqualToString:#"LEARN"])
{
animallearn *aview=[[animallearn alloc]initWithNibName:#"animallearn" bundle:nil];
[self.navigationController pushViewController:aview animated:YES];
}
else if([buttonTitle isEqualToString:#"PLAY"])
{
birdslearn *bview=[[birdslearn alloc]initWithNibName:#"birdslearn" bundle:nil];
[self.navigationController pushViewController:bview animated:YES];
}
else
{
return;
}
}
-(IBAction)animals
{
UIAlertView *alert1=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
alert1.tag = 1;
[alert1 show];
}
-(IBAction)birds
{
UIAlertView *alert2=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
alert2.tag = 2;
[alert2 show];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if(alertView.tag == 1)
{
//animal alert
}
else if(alertView.tag == 2)
{
//birds alert
}
// and so on......
}
You have a tag attribute for UIAlertView. It's an int. You should assign your tag with different values.
-(IBAction)direct
{
UIAlertView *alert3=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert3 setTag:3];
[alert3 show];
}
And then clickedButtonAtIndex delegate method you should observe the tag of your current alert view:
if(alertView.tag == 3) //etc ...
And I don't know if you're using ARC but if not you must add an autorelease when you instantiate your alert view.
Declare your UIAlertView globally then you can compare them with UIAlertView delegates object like this-
UIAlertView *alert1;
UIAlertView *alert2;
-(IBAction)animals
{
alert1=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert1 show];
}
-(IBAction)birds
{
alert2=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert2 show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(alertView ==alert1)
{
if (buttonIndex==1)
{
}
if(buttonIndex == 2)
{
}
}
if(alertView == alert2)
{
if (buttonIndex==1)
{
}
}
According to this you would not need tags :) Simply use the conditions
-(IBAction)animals
{
UIAlertView *alert1=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert1 show];
[alert1 setTag:101];
}
-(IBAction)birds
{
UIAlertView *alert2=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert2 show];
[alert2 setTag:102];
}
-(IBAction)direct
{
UIAlertView *alert3=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert3 show];
[alert3 setTag:103];
}
-(IBAction)fruit
{
UIAlertView *alert4=[[UIAlertView alloc]initWithTitle:#"" message:#"" delegate:self cancelButtonTitle:nil otherButtonTitles:#"LEARN",#"PLAY",#"CANCEL",nil];
[alert4 show];
[alert4 setTag:104];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
// learn has indextag = 0 ,play =1 cancel = 2
NSString *buttonTitle=[alertView buttonTitleAtIndex:buttonIndex];
if (alertView.tag == 101) {
switch (buttonIndex) {
case 0:
animallearn *aview=[[animallearn alloc]initWithNibName:#"animallearn" bundle:nil];
[self.navigationController pushViewController:aview animated:YES];
break;
case 1:
birdslearn *bview=[[birdslearn alloc]initWithNibName:#"birdslearn" bundle:nil];
[self.navigationController pushViewController:bview animated:YES];
break;
case 2:
return;
break;
default:
break;
}
}
if (alertView.tag == 102) {
switch (buttonIndex) {
case 0:
animallearn *aview=[[animallearn alloc]initWithNibName:#"animallearn" bundle:nil];
[self.navigationController pushViewController:aview animated:YES];
break;
case 1:
birdslearn *bview=[[birdslearn alloc]initWithNibName:#"birdslearn" bundle:nil];
[self.navigationController pushViewController:bview animated:YES];
break;
case 2:
return;
break;
default:
break;
}
}
// perform the same for tag = 103 and 104
}

UIAlertView Click event inside UIAlertView delegate

I am new in iPhone developer,
I want to implement 2 alert view one after another, like when user press delete button, 1st alert view will ask Are you sure want to Delete ? with two buttons yes and no
Now, if user presses yes , then 2nd alert view will come with message Deleted Successfully ! this alert view contains only OK button, now on click of this OK button i want to call one method.
and if user presses No then nothing should happen and alert should dismiss.
Here is my code snippet,
-(void)DeletebtnCliked:(id)sender
{
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:#"Are you sure want to delete ?"
message:nil delegate:self
cancelButtonTitle:nil
otherButtonTitles:#"Yes",#"No",nil];
[alertView show];
[alertView release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0)
{
UIAlertView* alertew = [[UIAlertView alloc] initWithTitle:#"Deleted Successfully !"
message:nil delegate:self
cancelButtonTitle:#"OK"
otherButtonTitles:nil];
[alertew show];
[alertew release];
if (buttonIndex == 0)
{
[self MethodCall];
}
}
else if (buttonIndex == 1)
{
[alertView dismissWithClickedButtonIndex:1 animated:TRUE];
}
}
after writing this code i am inside Infinite loop.
Any help will be appreciated.
alertView.tag = 1;
alertew.tag = 2;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (alertView.tag == 2)
{
//Do something
}
else
{
//Do something else
}
}
Set the second alert view's delegate to nil:
UIAlertView* alertew = [[UIAlertView alloc] initWithTitle:#"Deleted Successfully !"
message:nil delegate:nil
cancelButtonTitle:#"OK" otherButtonTitles:nil];
Either use tags to tackle the situation like following or simply just set Delegate nil for the inner alertView which is inside the delegate methode so that it will never call.
-(void)DeletebtnCliked:(id)sender
{
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:#"Are you sure want to delete ?"
message:nil delegate:self
cancelButtonTitle:nil
otherButtonTitles:#"Yes",#"No",nil];
alertView.tag = 1;
[alertView show];
[alertView release];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (buttonIndex == 0 && alertView.tag == 1)
{
UIAlertView* innerAlert = [[UIAlertView alloc] initWithTitle:#"Deleted Successfully !"
message:nil delegate:nil
cancelButtonTitle:#"OK"
otherButtonTitles:nil];
innerAlert.tag = 2;
[innerAlert show];
[innerAlert release];
if (buttonIndex == 0 && alertView.tag == 1)
{
[self MethodCall];
}
}
else if (buttonIndex == 1 && alertView.tag == 1)
{
[alertView dismissWithClickedButtonIndex:1 animated:TRUE];
}
}
try this:-
-(void)button:(UIButton *)buttonDelete{
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:#"delete" message:#"Do you Want to delete" delegate:self cancelButtonTitle:#"Cancle" otherButtonTitles:#"Yes", nil];
alertView.delegate = self;
alertView.tag = 2000;
[alertView show];
}
-(void)buttonUpdate:(UIButton *)buttonEdit{
UIAlertView *alertView2 = [[UIAlertView alloc] initWithTitle:#"Update" message:#"Do you Want to Update" delegate:self cancelButtonTitle:#"Cancle" otherButtonTitles:#"Yes", nil];
alertView2.delegate = self;
alertView2.tag = 20001;
[alertView show];
}
-(void)buttonAdd:(UIButton *)buttonAdd{
UIAlertView *alertView3 = [[UIAlertView alloc] initWithTitle:#"Add" message:#"Do you Want to Add" delegate:self cancelButtonTitle:#"Cancle" otherButtonTitles:#"Yes", nil];
alertView3.delegate = self;
alertView3.tag = 20002;
[alertView show];
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
if (alertView.tag == 2000){
if (buttonIndex==0) {
NSLog(#"Delete Cancel Button click");
}
else{
NSLog(#"Delete yes Button is click");
}
}
if (alertView.tag == 20001){
if (buttonIndex==0) {
NSLog(#"update Cancel Button click");
}
else{
NSLog(#"update yes Button is click");
}
}
if (alertView.tag == 20002){
if (buttonIndex==0) {
NSLog(#"Add Cancel Button click");
}
else{
NSLog(#"Add yes Button is click");
}
}
}

How to create different uiactionsheet for two buttons ?

Hi here i developing small application. In a subclass screen i have two buttons. When i press the first button, it will shows four actionsheet. When i press second button it wil shows five actionsheet. I was successfully shows it. But i cant set second button actions of five actionsheet. In my code the when i press second button of first actionsheet, it wil actioned first button of first actionsheet. Here i want set actions for individual actionsheets. Pls help me. Here is my code is
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if ( indexPath.row == 0)
{
UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:#"Cancel" destructiveButtonTitle:#"Edit" otherButtonTitles:#"Remove", #"Sell",#"Scrap", nil];
popupQuery.actionSheetStyle = UIActionSheetStyleBlackTranslucent;
[popupQuery showInView:self.view];
[popupQuery release];
}
if ( indexPath.row == 1 )
{
UIActionSheet *popupQuery = [[UIActionSheet alloc] initWithTitle:nil delegate:self cancelButtonTitle:#"Cancel" destructiveButtonTitle:#"Unsell" otherButtonTitles:#"Edit Item", #"Edit Sale",#"Sold",#"Scrap", nil];
popupQuery.tag=5;
popupQuery.actionSheetStyle = UIActionSheetStyleBlackOpaque;
[popupQuery showInView:self.view];
[popupQuery release];
}
}
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0)
{
Updateasset *object=[[Updateasset alloc]initWithNibName:#"Updateasset" bundle:nil];
[self presentModalViewController:object animated:NO];
[object release];
}
else if (buttonIndex == 1)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Remove" message:#"Do you want to Remove"
delegate:self cancelButtonTitle:#"No" otherButtonTitles:#"Yes", nil];
[alert show];
[alert release];
}
else if (buttonIndex == 2)
{
Egarageselling *object=[[Egarageselling alloc]initWithNibName:#"Egarageselling" bundle:nil];
[self presentModalViewController:object animated:YES];
[object release];
}
else if (buttonIndex == 3)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Scrap" message:#"Do you want to Scrap"
delegate:self cancelButtonTitle:#"No" otherButtonTitles:#"Yes", nil];
[alert show];
[alert release];
}
else if (buttonIndex == 4)
{
}
else if (buttonIndex == 5)
{
}
else if (buttonIndex == 6)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Scrap" message:#"Do you want to Scrap"
delegate:self cancelButtonTitle:#"No" otherButtonTitles:#"Yes", nil];
[alert show];
[alert release];
}
else if (buttonIndex == 7)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Scrap" message:#"Do you want to Scrap"
delegate:self cancelButtonTitle:#"No" otherButtonTitles:#"Yes", nil];
[alert show];
[alert release];
}
else if (buttonIndex == 8)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Scrap" message:#"Do you want to Scrap"
delegate:self cancelButtonTitle:#"No" otherButtonTitles:#"Yes", nil];
[alert show];
[alert release];
}
else if (buttonIndex == 9)
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"Scrap" message:#"Do you want to Scrap"
delegate:self cancelButtonTitle:#"No" otherButtonTitles:#"Yes", nil];
[alert show];
[alert release];
}
}
How to solve this problem.
Set different tags for two actionsheets like
popupQuery.tag=5;
popupQuery.tag=6;
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(actionSheet.tag==5)
{
if (buttonIndex == 0)
{
}
so on
}
if(actionSheet.tag==6)
{
if (buttonIndex == 0)
{
}
so on
}
}
I might just add, that in a situation like this I would say that best practice is to make your actionsheet to public or private instance variables. It would look like this in your header file (for public):
#property (nonatomic, retain) UIActionSheet *as1;
#property (nonatomic, retain) UIActionSheet *as2;
In your implementation file you synthesize them, like this:
#synthesize as1, as2;
Then remember to set them from where you now allocate your popupQuery's today:
...
self.as1 = popupQuery;
...
...
self.as2 = popupQuery;
...
And in your delegate method you can now do it like this (which I also find more readable if I should ever present the code for another developer):
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(self.as1 == actionSheet) {
if (buttonIndex == 0) { ... }
...
}
if(self.as2 == actionSheet) {
if (buttonIndex == 0) { ... }
...
}
}
I hope you find it useful in this and many other cases. I myself, do it like that, all the time. No harm in having a public or private reference for that matter to you objects. You never know when they might come in handy.

Is it possible to show alert in `clickedButtonAtIndex` method of alertview

In delegate method ofUIalerview I am trying to show another alert after finishing the process on clicking button index. Is it possible to do so? Also I want to call a method on button click of alert. How can I do that?
I am trying in this way. Is is correct?
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 1)
{
inappPurchaseViewController = [[InAppPurchaseViewController alloc] init];
[inappPurchaseViewController Upgrade:nil];
[inappPurchaseViewController release];
UIAlertView *purchasedone = [[UIAlertView alloc] initWithTitle:#"Enable Ads" message:#"You can Enable Ads from Settings Option" delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil];
[purchasedone show];
[purchasedone release];
}
}
You want to use tags for your UIAlertViews
Assigning tags
UIAlertView *firstAlert = [[UIAlertView alloc] initWithTitle:#"Do something first" message:#"This is the first UIAlertView" delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil];
[firstAlert setTag: 0];
[firstAlert show];
[firstAlert release];
Handling those tags
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
switch (alertView.tag)
{
case 0: /* firstAlert */
{
if(buttonIndex == 1)
{
inappPurchaseViewController = [[InAppPurchaseViewController alloc] init];
[inappPurchaseViewController Upgrade:nil];
[inappPurchaseViewController release];
UIAlertView *purchaseDone = [[UIAlertView alloc] initWithTitle:#"Enable Ads" message:#"You can Enable Ads from Settings Option" delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil];
[purchaseDone setTag: 1];
[purchaseDone show];
[purchaseDone release];
}
}
break;
case 1: /* purchaseDone */
{
/* purchaseDone uialertview was triggered, handle it here. */
}
break;
}
}
UIAlertView *a = [[UIAlertView alloc] initWithTitle:#"a" message:#"b" delegate:self cancelButtonTitle:#"OK" otherButtonTitles:#"ca",nil];
[a show];
[a release];
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if(buttonIndex == 1)
{
UIAlertView *purchasedone = [[UIAlertView alloc] initWithTitle:#"Enable Ads" message:#"You can Enable Ads from Settings Option" delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil];
purchasedone.tag = 55;
[purchasedone show];
[purchasedone release];
}
if([alertView tag] == 55 && buttonIndex == 0)
{
UIAlertView *purchasedone = [[UIAlertView alloc] initWithTitle:#"New Alert" message:#"New Alert Message" delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil];
[purchasedone show];
[purchasedone release];
}
}
write UIAlertViewDelegate in .h file.
put the following line on top of your .m file
`#define PREVIOUS_ALERT 101`
`#define NEW_ALERT 102`
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
//you need to make a condition here for checking the alert else it will go into infinite loom of showing alert after alert
//you can do it by setting tag to alert something like this
if(alertView.tag == PREVIOUS_ALERT) //sot the previous alert tag to this where you created it
{
if(buttonIndex == 1)
{
inappPurchaseViewController = [[InAppPurchaseViewController alloc] init];
[inappPurchaseViewController Upgrade:nil];
[inappPurchaseViewController release];
UIAlertView *purchasedone = [[UIAlertView alloc] initWithTitle:#"Enable Ads" message:#"You can Enable Ads from Settings Option" delegate:self cancelButtonTitle:#"OK" otherButtonTitles:nil];
purchasedone.tag = NEW_ALERT;
[purchasedone show];
[purchasedone release];
}
}
else
{
//code for your second alert
}
}

UIAlert View-for yes/no condition

my app needs alert msg and with yes button click another alert msg which decides the final action.
I have used - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex
this method.
Please help me.
Do what #Adrian Pirvulescu said but before showing the alert do alert.tag = 1; and then when - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex is called do:
if (alertView.tag == 1) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"2nd Alert"
message:#"My message" delegate:self cancelButtonTitle:#"Cancel"
otherButtonTitles:#"OK", nil];
alert.tag = 2;
[alert show];
[alert release];
}
else if (alertView.tag == 2) {
[self CallSomeMethod];
}
else {
//do what ever you want here
}
Check this out
http://www.timeister.com/2010/06/objc-show-alert-iphone/
// open a alert with an OK and cancel button
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:#"UIAlertView"
message:#"My message" delegate:self cancelButtonTitle:#"Cancel"
otherButtonTitles:#"OK", nil];
[alert show];
[alert release];