gpt4 book ai didi

ios - 仅当添加第三个 segue 时才在 didSelectRowAtIndexPath 之前调用 prepareForSegue

转载 作者:IT王子 更新时间:2023-10-29 07:52:12 26 4
gpt4 key购买 nike

我有 3 个 segues 到 3 个不同的 View 。 2 实现没有问题,但在创建第三个时出现问题。

我有以下 didSelectRowAtIndexPath 方法:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSLog(@" ---------- did select row");

if(indexPath.section == 0){
if(indexPath.row == [self.data count]-1){
//prior to adding this, everything works
[self performSegueWithIdentifier:@"MoreComments" sender:self];
}else{
[self performSegueWithIdentifier:@"FriendView" sender:friend];
}
}else if(indexPath.section == 1){
if(indexPath.row == [self.data2 count]-1){
[self performSegueWithIdentifier:@"MorePosts" sender:self];
}else{
[self performSegueWithIdentifier:@"FriendView" sender:friend];
}
}
}

我有以下 prepareForSeque 方法:

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([segue.identifier isEqualToString:@"MorePosts"]){
MorePostsViewController *mfamvc = segue.destinationViewController;
mfamvc.data = self.data;
}else if([segue.identifier isEqualToString:@"FriendView"]){
FriendViewController *fvc = segue.destinationViewController;
fvc.friend = friend;
}else if([segue.identifier isEqualToString:@"MoreComments"]){
MoreCommentsViewController *mcvc = segue.destinationViewController;
mcvc.data = self.data2;
}
}

在控制从我的单元格拖动到最后一个 View 之前,我可以看到我的程序点击了 didselectrow,然后是 prepareforseque。这使得所有 View 导航工作完美。

一旦我控制从单元格拖动到 MoreCommentsViewController,我就开始看到错误:

嵌套的推送动画会导致导航栏损坏在意外状态下完成导航转换。导航栏 subview 树可能会损坏。

我注意到现在 prepareforseque 也被调用了两次,首先调用 prepareforseque,然后是 didselectrow,然后再次调用 prepareforsegue。

有条件地访问这些不同的 View 我做错了什么?

最佳答案

您应该使用 didSelectRowAtIndexPath 或 segues from cell,但不能同时使用两者。如果您希望您的 didSelectRowAtIndexPath 调用 segues,这些 segues 应该不是从单元格到下一个场景,而是从场景上方栏中的 View Controller 图标:

segue between view controllers

您现在可以选择这个新的 segue,转到“属性检查器”(选项+命令+4),并提供一个调用 performSegueWithIdentifier 时可以在代码中引用的 Storyboard标识符。

关于ios - 仅当添加第三个 segue 时才在 didSelectRowAtIndexPath 之前调用 prepareForSegue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165684/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com