segue didSelectRowAtIndexPath 无法传递字符串

Posted

技术标签:

【中文标题】segue didSelectRowAtIndexPath 无法传递字符串【英文标题】:segue didSelectRowAtIndexPath can't pass string 【发布时间】:2012-06-10 20:52:18 【问题描述】:

我试图在情节提要的核心数据程序中的两个视图控制器之间传递一个字符串。我设置它的方式我希望只为一个部分推送下一个视图。因此使用“didSelectRowAtIndexPath”而不是“prepareForSegue”。下面是我的“didSelectRow…”代码“五”是被推送的 viewController 类。

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


    if (indexPath.section == 0)
    
        five *five=[[five alloc]init];
        five.delegate = self;
        [self performSegueWithIdentifier:@"segue1" sender:self];
    

“二”是父视图。下面是在“五”类中创建的协议中使用的方法。 “friendString”在“two”类中,“fiveString”在“five”类中。弹出视图时,字符串应该相同,然后我在“二”中的 UITextField 中使用“五”中添加的字符串。但是,弹出视图时它不会更新。

- (void)popFive:(five *)controller

    self.friendString=controller.fiveString;
    [self update];
    [self.tableView reloadData];

我相信这个问题与如何在“didSelectRow…”中完成序列有关。任何帮助或想法将不胜感激。谢谢。

【问题讨论】:

我认为在使用“didSelectRow...”进行转场时,您还必须添加“prepareForSegue”方法。添加下面的代码似乎可以正常工作。 【参考方案1】:

我认为当使用“didSelectRow...”作为转场时,您还必须使用“prepareForSegue”。当我添加它时,它似乎能够在弹出子视图时在两个视图之间传递字符串。我在下面包含了代码

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


if (indexPath.section == 0)

    [self performSegueWithIdentifier:@"segue1" sender:self];




- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
   

if ([segue.identifier isEqualToString:@"segue1"])

    five *five = segue.destinationViewController;
    five.delegate = self;

   

【讨论】:

以上是关于segue didSelectRowAtIndexPath 无法传递字符串的主要内容,如果未能解决你的问题,请参考以下文章

Segues 和 Segues 不工作的条件

使用多个 Segue |如何使用 Cell 数据来执行特定的 Segue

如果 segue.identifier == "showChildFiles" 当 segue 标识符看起来正确时,Swift 3 准备 segue 不通过

iOS从推送segue中检测unwind segue

如何创建 Segue 的动画执行和展开 Segue?

Xcode中多个Segues中通过UITableViews传递数据(三个Segues)