1

ユーザーが UISegmented コントロールのセグメントを押したときに画像を変更できる設定をアプリに持たせたいのですが、ナビゲーション バーに表示することしか知りません。設定に特定のビューがあるように実装するにはどうすればよいですか。ユーザーがセグメントを押すと、完了が押されると、その背景画像で新しいビューに戻ります。

4

3 に答える 3

1

このコード行を試してください。

 NSArray *ary=[sgmntControl subviews];
 NSInteger intCount=0;
 for (id seg in ary) 
  for (id imageview in [seg subviews]) 
 if ([imageview isKindOfClass:[UIImageView class]])
  {
   if(intCount==1)
    {
    [imageview setimage:[UIImage imagenamed:@""]; 

    }
    else 
    {
   [imageview setimage:[UIImage imagenamed:@""]; 

    }


   }
于 2012-05-07T05:04:46.253 に答える
0
 One of the solution is you can add imageView under UISegmented controller with same size , set alpha for UISegmented 0.01 and change the imageview image in UISegmented action method.like below

self.imageViewSegment.image = [UIImage imageNamed:[NSString stringWithFormat:@"segment%d.png",self.segmentedControl.selectedSegmentIndex]];
//here your image names like segment0.png,segment1.png,segment2.png..etc
于 2012-05-07T05:10:10.837 に答える
0

この UISegmentedControl *segment; のように、セグメント化されたコントロールのイメージを変更できます。

[segment setImage:UIImage  forSegmentAtIndex:segmentIndex];

また

[segment setBackgroundImage:UIImage  forState:ControlState barMetrics:UIBarMetrics];

編集:

newViewController に値を渡すためにこれを試すことができます

- (IBAction)didChangeSegmentControl:(UISegmentedControl *)control {
   newViewController = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil];
newViewController. selectedIndex =control.selectedSegmentIndex;
[self.navigationController pushViewController: newViewController animated:NO];    
}

その前に newViewController でプロパティを設定する必要があります

@interface NewViewController : UIViewController
{
NSInteger selectedIndex;
}

@property(nonatomic)NSInteger selectedIndex;

@end

そして実装中

@implementation NewViewController

@synthesize selectedIndex;
//your codes
@end
于 2012-05-07T04:45:00.817 に答える