Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios TableViewController';从.plist文件中删除单元格_Ios_Iphone_Objective C_Uitableview_Plist - Fatal编程技术网

Ios TableViewController';从.plist文件中删除单元格

Ios TableViewController';从.plist文件中删除单元格,ios,iphone,objective-c,uitableview,plist,Ios,Iphone,Objective C,Uitableview,Plist,我目前正在为我的应用程序制作一个tableView,我的单元格来自一个.plist文件。但是,我希望能够进入第二个视图控制器,无论我单击哪个单元格,区别应该是第二个视图控制器的UIText将取决于我单击的单元格 到目前为止,我一直在想象这样的事情 if(tableview.tag == 1){ myUIText.text = @"a"; }else if(tableview.tag == 2){ myUIText.text = @"b"; etc....... 使

我目前正在为我的应用程序制作一个tableView,我的单元格来自一个.plist文件。但是,我希望能够进入第二个视图控制器,无论我单击哪个单元格,区别应该是第二个视图控制器的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;
}

我当然需要更多的信息,我会对你的代码做一些假设,看看它是否有用。我假设您要发送的文本是用户单击的单元格的标题。现在,您如何将其发送给下一个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作为公共属性,以便您可以在推送或切换到新视图之前对其进行设置。我还假设在DidSelectRowatineXpath中使用的是UINavigationController


希望这能有所帮助。

您至少应该将plist添加到问题列表中。谢谢你的建议我很抱歉我不太清楚。我希望这会有所帮助:我有一个包含单元格的tableViewController,我已经用plist命名了这些单元格。第一个单元格可能是第1章,第二个单元格可能是第2章等等。我想知道的是,当我单击单元格1(第1章)时,第二个viewController的UITextView将设置为等于@“a”的文本,如果我单击第二个单元格(第2章),则第二个viewController的UITextView(它是同一个viewController)将设置为等于@“b”的文本。我想要的是,我想为我的所有章节使用一个ViewController,因此,如果我想制作一个图书应用程序,我不必创建数百个ViewController。我希望这真的能帮上忙,我会使用故事板上的navigationController再次返回,如果这是你的意思的话。我想我明白了。所以你想让任何章节号直接链接到字母表中的一个字母?第一章是A,第二十六章是Z?如果你有超过26章会发生什么?同样的,你也失去了我在同一个和第二个视图控制器的谈话。您的意思是希望UITableView仅使用新数据刷新,而不是实际转换到新的视图控制器?很抱歉,我再次让您感到困惑。不,我不是说第1章是a。我想根据我单击的单元格更新我的视图控制器。如果我单击第1章,它将显示第1章的文本,可能是:Tom遇见了爸爸。如果我单击第2章,则我的(我的viewController中的UITextView)必须更新为:他的爸爸给了他糖果。这些只是示例,我想在我的viewController中更新/刷新我的UITextView。我有一个tableViewController和一个viewController,当您单击tableViewController中的单元格时,它将显示更新了UITextView的MyViewController