私はUISegmentedControlを持つビューを持つ1つの.xibを持っており、プログラムでそれらを追加しています。UISegmentedControlは、ツールバーから値をプログラムで変更します。
私はappdelegateでツールバーを追加するコードを書いてあり、イベントがあります。
ツールバーで、指定されたmutable配列からUISegmentedControlがロードされていることをクリックします。
私がしたいことは、ツールバーボタンをクリックしたときにUISegmentedControlの値を変更できないことです。
私はUISegmentとその値を追加する方法を書いています。ツールバーのボタンをクリックするたびに、私はメソッドを呼び出します。 UISegmentedControlを作成するための
方法:ツールバーのボタンのクリック用
delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
NSMutableArray *itemArray = [[NSMutableArray alloc] init];
itemArrayforID = [[NSMutableArray alloc] init];
itemArrayforImage = [[NSMutableArray alloc] init];
bool isfirst = true;
UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
[segmentedControl removeFromSuperview];
int temp =0;
NSLog(@"row count : %d",delegate.TopMenus.count);
for(int i=0;i<delegate.TopMenus.count;i++)
{
delegate.curTopsMenu = [delegate.TopMenus objectAtIndex:i];
NSLog(@"toolbar click : %@",delegate.toolbarbtnclick);
NSLog(@"parent_id : %@",[delegate.curTopsMenu valueForKey:@"parent_id"]);
if([delegate.toolbarbtnclick isEqualToString:[delegate.curTopsMenu valueForKey:@"parent_id"]])
{
int aaa = [[delegate.curTopsMenu valueForKey:@"top_menu_id"] intValue];
if(isfirst)
{
MenuLoadID = [NSString stringWithFormat:@"%d",aaa];
isfirst =false;
}
NSString *TEXT = [delegate.curTopsMenu valueForKey:@"top_menu_text"];
NSString *TEXTID = [delegate.curTopsMenu valueForKey:@"top_menu_id"];
NSString *SelectIMG = [delegate.curTopsMenu valueForKey:@"image_path"];
NSLog(@" TEXT : %@ and TEXTID : %@",TEXT,TEXTID);
[itemArray insertObject:TEXT atIndex:temp];
[itemArrayforID insertObject:TEXTID atIndex:temp];
[itemArrayforImage insertObject:SelectIMG atIndex:temp];
temp++;
}
}
segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
[segmentedControl removeFromSuperview];
segmentedControl.frame = CGRectMake(0, 100, 320, 40);
segmentedControl.segmentedControlStyle = UISegmentedControlStyleBar;
segmentedControl.selectedSegmentIndex = 0;
[segmentedControl addTarget:self action:@selector(changeSegment:) forControlEvents:UIControlEventValueChanged];
UIImage *segmentSelected = [[UIImage imageNamed:@"games-on.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
UIImage *segmentUnselected = [[UIImage imageNamed:@"games-ho.png"]
resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[[UISegmentedControl appearance] setBackgroundImage:segmentUnselected
forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
[[UISegmentedControl appearance] setBackgroundImage:segmentSelected
forState:UIControlStateSelected barMetrics:UIBarMetricsDefault];
[self.navigationController.view addSubview:segmentedControl];
[segmentedControl release];
segmentSelected = nil;
[itemArray release];
[self MenuRowCount];
コード:
ViewController *VC = [[ViewController alloc] init];
[VC LoadTopMenuFromBottmClick];
おかげで、私が実装してみましょう... –