开发者

How to set action in multiple buttons in navigation bar

this is my code

- (void)viewDidLoad 
{
[super viewDidLoad];

NSArray *segmentTextContent = [NSArray arrayWithObjects:
                               NSLocalizedString(@"button1", @""),
                               NSLocalizedString(@"button2", @""),
                               NSLocalizedString(@"button3", @""), nil];

UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] nitWithItems:segmentTextContent];
segmentedControl.selectedSegmentIndex = 0;
segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.frame = CGRectMake(0, 0, 400, 30);

self.navigationItem.titleVi开发者_如何学编程ew = segmentedControl;
[segmentedControl release];
}

three buttons are displayed but i don't know how to set action in button help me thanks in advance


add target at the time of segmentedControl creation like below

 [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged];

in that selector

-(IBAction) segmentAction:(id)sender{
    UISegmentedControl *segmentedControl = (UISegmentedControl *)sender;
        NSLog(@"Segment clicked: %d", segmentedControl.selectedSegmentIndex);
    switch (segmentedControl.selectedSegmentIndex) {
            case 0:
              self.segmentLabel.text =@"Segment 1 selected.";
              break;
            case 1:
              self.segmentLabel.text =@"Segment 2 selected.";
              break;

            default:
               break;
           }


You have to make 3 buttons and add them to an UIToolbar.

- (void)viewDidLoad
{
    [super viewDidLoad];

// create a toolbar to have the buttons at the right side of the navigationBar
    UIToolbar* toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 150, 44.01)];
    toolbar.tintColor = [UIColor clearColor];
    [toolbar setTranslucent:YES];

// create the array to hold the buttons, which then gets added to the toolbar
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];

    // Create button1
    UIBarButtonItem *button1 = [[UIBarButtonItem alloc]
                        initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(button1Pressed)];
    [buttons addObject:button1];
    [button1 release];

    // Create button2
    UIBarButtonItem *button2 = [[UIBarButtonItem alloc]
                        initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(button2Pressed)];
    [buttons addObject:button2];
    [button2 release];

    // Create button3
    UIBarButtonItem *button3 = [[UIBarButtonItem alloc]
                      initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:@selector(button3Pressed)];
    [buttons addObject:button3];
    [button3 release];

// stick the buttons in the toolbar
    [toolbar setItems:buttons animated:NO];
    //self.toolbarItems = buttons;
    [buttons release];

    // and put the toolbar in the nav bar
    [[self navigationItem] setRightBarButtonItem:[[[UIBarButtonItem alloc] initWithCustomView:toolbar] autorelease]];
    [toolbar release];
} 

...

 - (void)button1Pressed
{
   //do stuff
}

 - (void)button2Pressed
{
   //do stuff
}

 - (void)button3Pressed
{
   //do stuff
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜