1

私のアプリでは、サブビューとして追加されたスクロール ビューとテーブル ビューがあり、このスクロール ビューには複数のメニュー ボタン (UI ボタン​​) がサブビューとしてスクロール ビューに追加されています。それぞれのメニュー ボタンに応じて異なる配列を持つ table-View がタップされます。何かアイデアはありますか?

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self PutButtoninScrollView:7];

}
-(void)PutButtoninScrollView:(int)numberOfbuttons
{
    myButton1=[[UIButton alloc]init];
    myButton1= [UIButton buttonWithType:UIButtonTypeCustom];
    myButton1.frame=CGRectMake(5, 5, 70, 30);
    [myButton1 setTitle:@"दुनिया" forState:UIControlStateNormal];
    [myButton1 setTag:1];
    myButton1.backgroundColor=[UIColor blackColor];
    [myButton1 addTarget:self action:@selector(ListViewAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.myScrollView addSubview:myButton1];

    myButton2=[[UIButton alloc]init];
    myButton2= [UIButton buttonWithType:UIButtonTypeRoundedRect];
    myButton2.frame=CGRectMake(80, 5, 70, 30);
    [myButton2 setTitle:@"India" forState:UIControlStateNormal];
    [myButton2 addTarget:self action:@selector(ListViewAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.myScrollView addSubview:myButton2];
    [self.myScrollView setContentSize:CGSizeMake(160, 35)];
    _myScrollView.backgroundColor=[UIColor redColor];
    [self.view addSubview:self.myScrollView];
}

-(void)ListViewAction:(id)sender
{
    NSLog(@"sucessful");        

    if ([myButton.currentTitle isEqualToString:@"दुनिया"])
    {
        NSLog(@"successful again 1");
    }
    else if ([myButton.currentTitle isEqualToString:@"भारत"])
    {
        NSLog(@"successful again 2");
    }        
}

問題は、コードを実行すると「成功」が表示されることです。つまり、ListViewAction メソッドが呼び出されますが、if ステートメントは実行されません。

4

3 に答える 3

0

これを試して

    -(void)PutButtoninScrollView:(int)numberOfbuttons
{
xPosition=5;
for(int i=0;i<numberOfbuttons;i++)
{

    myButton= [UIButton buttonWithType:UIButtonTypeRoundedRect];
    myButton.frame=CGRectMake(xPosition, 5, 70, 30);
    myButton.backgroundColor=[UIColor redColor];
   [myButton setTitle:[NSString stringWithFormat:@"%d",i] forState:UIControlStateNormal];
    [myButton setTag:i];
    [myButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.myScrollView addSubview:myButton];
    xPosition+=75;
}
[self.myScrollView setContentSize:CGSizeMake(xPosition,35)];
_myScrollView.backgroundColor=[UIColor redColor];
[self.view addSubview:self.myScrollView];
}

  - (void) buttonClicked:(id) sender
{
   NSString *strTitle = [sender currentTitle];
 // arrItem have list of array items
   NextView  *detailViewController = [[NextView alloc] initWithNibName:@"NextView" bundle:nil];
   detailViewController.arrTableView =[arrItem objectAtIndex:[strTitle integerValue]];
  [self.navigationController pushViewController:detailViewController animated:YES];


}
于 2013-02-16T12:05:58.120 に答える
0

-(void)ListViewAction:(id)sender { NSLog(@"成功");

if ([[sender currentTitle] isEqualToString:@"दुनिया"])
{
    NSLog(@"successful again 1");
}
else if ([[sender currentTitle] isEqualToString:@"भारत"])
{
    NSLog(@"successful again 2");
}        

}

于 2013-02-18T11:22:23.313 に答える
-1

これを試して

[myButton1 addTarget:self action:@selector(ListViewAction:) forControlEvents:UIControlEventTouchUpInside];
[myButton2 addTarget:self action:@selector(ListViewAction:) forControlEvents:UIControlEventTouchUpInside];
于 2013-02-16T12:21:00.167 に答える