1

現在、テーブルビューを使用してアプリを作成しています。最初の行をクリックするとview1が表示され、2番目の行をクリックするとview2が表示されます。これどうやってするの?

if elseステートメントIDを使用しようとしまし didSelectRowAtIndexPathたが、ここでは機能しませんでした。これが私のコードです。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{

int EntryIndex = [indexPath indexAtPosition:[indexPath length]-1];

{
    AboutViewController *aboutView = [[AboutViewController alloc]init];
    aboutView.getId4 = [[contentArray objectAtIndex:EntryIndex]objectForKey:@"title"];
    aboutView.aboutofficeId = getId3;
     [self.navigationController pushViewController:aboutView animated:YES];
}
else
{
    DepartmentsViewController *deptView = [[DepartmentsViewController alloc]init];
    deptView.getId5 = [[contentArray objectAtIndex:EntryIndex]objectForKey:@"title"];
    deptView.deptoffice = getId3;
    [self.navigationController pushViewController:deptView animated:YES];
}

}
4

2 に答える 2

0

注:UIViewを作成して表示したいので、ここに入れましUIViewUIViewController

 - (void)tableView:(UITableView *)aTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {

        if(indexPath.row == 1)
        {
            UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake("AsYouWnat")];
            view1.backgroundColor = [UIColor redColor];
            [self.view addSubview:view1];
        }
        else if(indexPath.row  == 2)
        {
            UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake("AsYouWnat")];
            view2.backgroundColor = [UIColor redColor];
            [self.view addSubview:view2];
        }
        .
        .
        .
        .
        .
        ////////// As Your Row In Table
        else
        {
            UIView *viewN = [[UIView alloc] initWithFrame:CGRectMake("AsYouWnat")];
            viewN.backgroundColor = [UIColor redColor];
            [self.view addSubview:viewN];
        }
    }
于 2013-02-11T10:19:09.067 に答える
0
  1. ビューを表示したい場合UIviewコンテンツのコンテンツスタイルが異なる場合は、Mutable配列を宣言し、その中にUIviewを追加できます。

  2. 同じスタイルのビューを表示する必要があるが、コンテンツのみが異なる場合は、次のコードを検索できます。

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,460)];
    switch (indexPath.row) {
    case 0:
    { 
    //Add your label,image,etc  
    [self.view addSubview:view];
    }
        break;
    
        case 1:
    {
    
    //Add your label,image,etc  
    [self.view addSubview:view];
    
    }
        break;
    
  3. 別のViewControllerを表示したい場合は、次のコードを実行する必要があります

    #import "ViewController1.h"
    #import "ViewController2.h"
    #import "ViewController3.h"
    
    -(void)viewDidLoad
    {
    
     VCArray=[[NSMutableArray alloc]initWithObjects:ViewController1,ViewController2,ViewController3];//allocate and init ViewController and add that to VCArray
    
     }
    
    
    
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
    {
    
     UIViewController *viewcontr=[VCArray objectAtIndex:indexpath.row];
     viewcontr=[[viewcontr alloc]init];
     [self presentModalViewController:viewcontr animated:YES];
    
      }
    
于 2013-02-11T10:40:48.817 に答える