Change the navigation button item on button press - iphone

I want to be able to change the right navigation bar button to a different button with name and action.
As an Example:
btnOpenImage is pressed and rightNavButton1 changes to rightNavButton2

-(IBAction) btnOpenImage_Clicked:(id)sender{
//1. IF buttons are UIBarButtonItem then use bellow code
// This bellow line for Change the action(Target)
[rightNavButton1 setAction:#selector(rightNavButton2_Clicked)];
//This bellow line For Change the Title
[rightNavButton1 setTitle:#"rightNavButton2_Clicked"];
//OR 2. IF buttons are UIButton then use bellow code
// This bellow line for Change the action(Target)
[rightNavButton1 addTarget:self action:#selector(rightNavButton2_Clicked) forControlEvents:UIControlEventTouchUpInside];
//This bellow line For Change the Title
[rightNavButton1 setTitle: #"rightNavButton2" forState: UIControlStateNormal];
}

Try this:
[btnOpenImage addTarget:self
action:#selector(aMethod)
forControlEvents:UIControlEventTouchDown];
- (void)aMethod
{
[rightNavButton1 setTitle: #"rightNavButton2" forState: UIControlStateNormal];
}

Related

UIButton tags in iPhone

I have 2 button objects (UIButton *obtn,*ebtn), I have created 12 buttons(6 buttons with 6 tag values for obtn, 6 buttons with 6 tag values for ebtn)... I have a single btnClick: method for all those 12 buttons... when i click on a button of tag value 1... Iam getting the properties of selected button to another button by using sender... I want to get the properties of unselected button (Example obtn object with tag value 3) into another button How can i get it...?
My Direct Question is: How to assign the properties of a button with a tag value to another button when it is in unselected state...
It sounds like you want to be able to get a pointer to a button with a certain tag, and at the moment all you can do is get the button that has sent you the action.
The method you are looking for is viewWithTag:. This will get you a button (or any other view) with the tag you want. You pass this method to the superview of the button. So, in your action method (assuming all buttons are in the same superview):
UIView *superview = [sender superview];
UIButton *otherButton = [superview viewWithTag:3];
You then have sender, which is the button that was tapped, and otherButton, which is the button with tag 3. You can modify each one as you wish.
// Create textfield 5
btn_select_Country = [UIButton buttonWithType:UIButtonTypeCustom];
//btn_select_Client = [UIButton buttonWithType:UIButtonTypeRoundedRect];
btn_select_Country.frame = CGRectMake(BTN_X_CORD, 228, BTN_WIDTH, BTN_HEIGHT);
btn_select_Country.tag = 1;
// [btn_select_Client setTitle:#"Button One" forState:UIControlStateNormal];
[btn_select_Country addTarget:self action:#selector(countryListBtnTap:) forControlEvents:UIControlEventTouchUpInside];
btn_Image_Select_Country= [UIImage imageNamed:#"drop-down.png"];
[btn_select_Country setImage:btn_Image_Select_Country forState:UIControlStateNormal];
//btn_select_Client.tag=1205;
[scrollview addSubview:btn_select_Country];
- (IBAction)currencyListBtnTap:(id)sender;
{
button_Number = [sender tag];
[self allTextFeildResignFirstResponder];
}

Is it possible to make the navigationcontroller title a button?

Is it possible to make the navigationcontroller title a button? but without a button look to it. I want it to be just text that if you click on it a view/actionsheet pops up from the bottom
If so, can you show me programmatically how I would make it a button?
Thanks
You can set TitleView of navigationItem to set a button as title.
Here is what i tried and got it working:
UIButton*button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame=CGRectMake(0, 0, 30, 20);
[button setTitle:#"Testing" forState:UIControlStateNormal];
[button addTarget:self action:#selector(btnAction) forControlEvents:UIControlEventTouchUpInside];
[[self navigationItem] setTitleView:button];
But if you don't want it to look like a button, you have set the buttonWithType to custom and set its backGroundImage property.
in btnAction have your code to show the pop ups.

Adding a UIButton

I need a UIButton to act as a Radio button (selection button). When the user
clicks on the button, the color should change (to indicate that the user
clicked this button), and when the user clicks the same button again (the already selected
button) the color of the button should change to the default color indicating
that the button was un-selected.
How can i do this programatically ?
There might be other alternatives to do this, but i require to use the button
to do this.
You can specify different images for selected and normal button states:
[btnName setImage:selectedImage forState:UIControlStateSelected];
[btnName setImage:normalimage forState:UIControlStateNormal];
And then in button's action method simply toggle button's state between normal and selected:
- (void) buttonAction:(UIButton*)sender{
sender.selected = !sender.selected;
}
Put the below code in your button action.
if([btnName isSelected]) {
[btnName setImage:#"SelectedImage" forState:UIControlStateNormal];
[btnName setSelected:NO];
} else {
[btnName setImage:#"deSelectedImage" forState:UIControlStateNormal];
[btnName setSelected:YES];
}
Hope it will be useful.
Follow below link:
Radio Button in iPhone

how to add button in the last cell of table?

I am using tableView .
Now I want to make a button in my last cell??
can anyone tell me how to do this??
other data I am getting by an array . I want to add the button after the last element of the table
Is there any specific reason to display the button when user scroll till end of the last row of the table,
if yes:
then you can add your button in tableFooterView
else :
you can reduce the height of your table view in such a way so you can
add a custom view contains your button and place your custom view
after your tableView
Add your button as a tableFooterView of the table, this is much simpler than trying to use a custom cell for the last row.
i am not having my mac right now trying to guide you:
1.Implement CellForRowAtIndexPath method.
2.u can use something like
`if (indexpath.row==[array count])
{
//make button here with cgrectmake and add to the view
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect/custom/...];
[button addTarget:self
action:#selector(aMethod:)
forControlEvents:UIControlEventTouchUpInside];
[button setTitle:#"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[cell addSubview:button ];
}`
hope it help you

Where to insert code that creates buttons programmatically?

I receive some JSON from the net and based on that data, I must create 2 or 3 buttons. Part of my gui is static and created in NIB (won't change), only the number of buttons will change. I found this code for making buttons in code:
//create the button
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//set the position of the button
button.frame = CGRectMake(100, 170, 100, 30);
//set the button's title
[button setTitle:#"Click Me!" forState:UIControlStateNormal];
Is this the right way? In which method of my viewcontroller should I put this code?
You can add the button whenever you want, as long as the view has been loaded already. The one thing you'd need to add to the above code is
[[self view] addSubview:button];
Using this code, you have a button on the screen, but it won't be able to trigger any actions. You'll probably also want to add:
[button addTarget:self action:#selector(someMethod:) forControlState:UIControlEventTouchUpInside];
You should add the buttons in the delegate/method that parses the JSON data.
Don't forget to add the created buttons to your view:
[containerView addSubview:button];