Master DetailView中的数据访问具有多个Xib for Detail

时间:2012-03-16 05:55:27

标签: iphone objective-c ios4 uiview

我有一个像userName,DOB,注册号:和地址这样的数据,我创建了10个XIB文件 for detail打开时的视图单击MasterView表单元格时,在详细视图的第二个XIB文件中,当我在第3个XIB中的第二个Xib中选择用户时,我有一个用户信息??我不知道iphone开发中的iphone bcoz m数据委托吗?

1 个答案:

答案 0 :(得分:0)

在我对你的项目的理解中:

  1. 您从MasterViewController(第一个控制器)开始
  2. 选择或单击行/单元格后,另一个控制器将加载其中包含的内容 用户列表? (我不太确定)其中每个用户都有信息(包含userName,DOB等)。因此,这意味着在此控制器中 - 您将这些信息分配给相应的用户。 (第二控制器)
  3. 然后,当您选择特定用户时,另一个控制器会加载您要使用此控制器中数据的位置 - 可能是,您希望显示从第二个控制器分配的信息。 (第三控制器)
  4. 所以,如果我们在同一页面上,这就是你要做的事情:

    (比方说,你已经完成了MainView(FirstController)并且你已经在SecondViewController中了)

    对于初学者,你可以这样做:

    1. 在ThirdViewController中创建一个全局变量,它将保存SecondViewController传递的信息。在这种情况下,
    2. ///////// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ///////// ///////// ~~~~~~~~~~~~~~~~~~ ///////// ///////// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /////////

      @interface ThirdViewController:UIViewController{
          NSDictionary *dictInformation;
      }
      @property (nonatomic, retain) NSDictionary *dictInformation;
      @end
      
      @implementation ThirdViewController
      @synthesize dictInformation;
      
      ...
         // some codes here...
         // you can use the information passed from the SecondViewController
      ...
      
      - (void)dealloc{
           [dictInformation release], dictInformation = nil;
           [super dealloc];
      }
      @end
      

      ///////// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ///////// ///////// ~~~~~~~~~~~~~~~~ ///////// ///////// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /////////

      @implementation SecondViewController
      
          // This is the assignment of data. You can put this in viewDidload
          // user 1
           NSMutableDictionary *aUser1 = [[NSMutableDictionary alloc] init];
          [aUser1 setObject:@"josh123" forKey:@"userName"];
          [aUser1 setObject:@"01-01-1987" forKey:@"dateOfBirth"];
          [aUser1 setObject:@"12345678" forKey:@"regNumber"];
          [aUser1 setObject:@"24-H 1st St. New York" forKey:@"address"];
          // user 2
          NSMutableDictionary *aUser2 = [[NSMutableDictionary alloc] init];
          [aUser2 setObject:@"josh321" forKey:@"userName"];
          [aUser2 setObject:@"01-02-1988" forKey:@"dateOfBirth"];
          [aUser2 setObject:@"87654321" forKey:@"regNumber"];
          [aUser2 setObject:@"42-H 1st St. New York" forKey:@"address"];
      
         // I assigned all users to an array
          NSArray *arrayOfUsers = [[NSArray alloc] initWithObjects:aUser1, aUser2, nil];
          [aUser1 release];
          [aUser2 release];
      
         // Pass the value of arrayOfUsers somewhere to that it can be accessed
         // or it can be a 
      
         /* At this point, the following has values:
         arrayOfUsers[0] = aUser1 -> {'josh123', '01-01-1987', '12345678', '24-H 1st St. New York'}
         arrayOfUsers[1] = aUser2 -> {'josh321', '01-02-1988', '87654321', '42-H 1st St. New York'}
         */
      
          // You can actually add the following codes anywhere, depending on your implementation. It can be when you clicked a cell or a button, etc.
      
            ThirdViewController *thirdViewController = [[ThirdViewController alloc] initWithNibName:@"ThirdViewController" bundle:nil];
          // assign a dictionary value to dictInformation which is found in ThirdViewController
          // If you are using UITableView, then, this should be done when you are selecting a cell in the tableView and the value of the index should be indexPath.row
            [thirdViewController setDictInformation:[arrayOfUsers objectAtIndex:0]]; 
            // This pushes to the ThirdViewController
            [self.navigationController pushViewController:thirdViewController animated:YES];
            [thirdViewController release];
      
            ...
      @end
      

      注意:这只是代码片段......我只想告诉您如何操作。但希望这会有所帮助。祝好运! :)