2009-12-11 79 views
0

我正在使用此代码获取导航栏右侧的三个按钮,按钮是可见的,但在此旁边,我想从此三个按钮图像转到下一个视图,文本,视频。想要从右键菜单转到下一个视图项目

NSArray *segmentTextContent = [NSArray arrayWithObjects:@"Image",@"Text",@"Video",nil];  
    UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTextContent]; 

     segmentedControl.frame = CGRectMake(13, 20, 150, kCustomButtonHeight); 
     segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar; 
     segmentedControl.momentary = YES; 

     defaultTintColor = [segmentedControl.tintColor retain]; // keep track of this for later 

     UIBarButtonItem *segmentBarItem = [[UIBarButtonItem alloc] initWithCustomView:segmentedControl]; 


    self.navigationItem.rightBarButtonItem = segmentBarItem; 

    if(segmentedControl.selectedSegmentIndex=0) 
    { 

    [segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents:UIControlEventValueChanged]; 
    } 
    else if(segmentedControl.selectedSegmentIndex==1) 
    { 

    [segmentedControl addTarget:self action:@selector(segmentAction1:) forControlEvents:UIControlEventValueChanged]; 
    } 
else if(segmentedControl.selectedSegmentIndex==2) 
    { 

    [segmentedControl addTarget:self action:@selector(segmentAction2:) forControlEvents:UIControlEventValueChanged]; 
    }  
      [segmentBarItem release]; 

      //[modalBarButtonItem release];  
} 
return self; 
} 

回答

0

我认为你对动作和目标的工作原理有一个根本性的误解。创建时无法检查selectedSegmentIndex。它将始终为0.您必须将目标恰好添加到响应方法中一次,并检查selectedSegmentIndex并从那里采取行动:

[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvent:UIControlEventTouchUpInside]; 

//... 

- (void) segmentAction:(UISegmentedControl *)source { 
    switch (source.selectedSegmentIndex) { 
    case 0: 
     [self segmentAction0:source]; 
     break; 
    case 1: 
     [self segmentAction1:source]; 
     break; 
    case 2: 
     [self segmentAction2:source]; 
     break; 
    } 
} 
相关问题