0
我有一個.xib,其中有一個UISegmentedControl的視圖,我將以編程方式添加它們。UISegmentedControl以編程方式從工具欄中更改值點擊
在appdelegate中,我寫了添加工具欄的代碼,還有事件。
在工具欄上單擊從給定的可變陣列加載的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];
感謝您的答覆達米安,讓我嘗試實現... – 2012-02-28 17:22:50