TableViewController的单元格来自.plist文件

时间:2014-03-20 21:29:44

标签: ios iphone objective-c uitableview plist

我正在为我的应用程序制作一个tableView,并且我从.plist文件中获取了我的单元格。但是我想能够进入我的第二个视图控制器,无论我点击什么单元格,差别应该是我的第二个viewController的UIText将取决于我点击的单元格。

到目前为止,我已经想到了类似的东西;

   if(tableview.tag == 1){
   myUIText.text = @"a";
   }else if(tableview.tag == 2){
   myUIText.text = @"b";
   etc.......

这是否可以使用相同的视图控制器,相同的UIText?如果没有,那怎么样?

如何在我的.plist文件中为我的数组设置标签?

我很感激你的回答

编辑:以下是两种方法的示例;

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return [self.items count];
}

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath  *)indexPath
{
 NSString * id = @"plistdata";

   UITableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:id forIndexPath:indexPath];

   if(cell == nil){
       cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:id];
   }

   cell.textLabel.text = self.items[indexPath.row];

   return cell;
}

1 个答案:

答案 0 :(得分:0)

我肯定需要更多信息,我会对您的代码做一些假设,看看它是否有帮助。我假设你要发送的文本是用户点击的单元格的标题。现在,如何将它发送到下一个VC将根据您是否使用segue而有所不同。如果您使用segue,您可以执行以下操作:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([[segue identifier] isEqualToString:@"mySegue"]) {
    UITableViewCell *cell = (UITableViewCell *)sender;
    UpcomingViewController *viewController = segue.destinationViewController;
    viewController.textView.text = cell.chapterText;
}
}

但是如果您使用的是didSelectRowAtIndexPath,那么:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UpcomingViewController *viewController = [[UpcomingViewController alloc] init];
    viewController.textView.text = self.arrayOfChapterText[indexPath.row];
    [self.navigationController pushViewController:viewController animated:YES];
}

现在再次因为你的问题在你的情景中不是很清楚我已经对我认为你可能想要做的事情采取了一些自由。我假设在您选择项目后将显示的视图控制器将UITextView作为公共属性,以便您可以在推送或转换到新视图之前进行设置。我还假设你在didSelectRowAtIndexPath中使用了UINavigationController。

希望这有帮助。