gpt4 book ai didi

iphone - 带有 prepareForSegue 的 UITableView didSelectRowAtIndexPath 但未调用 didLoadView

转载 作者:太空狗 更新时间:2023-10-30 04:02:25 28 4
gpt4 key购买 nike

我正在学习 iOS,我已经使用 iOS 5 编写了一个简单的 iPhone 应用程序。该应用程序显示一个 UITableView,其中填充了演讲者的姓名,当我选择其中一个姓名时,它应该转到 UIViewController 并显示有关该人的详细信息(名称、地址等),所以它实际上是两个 ViewController,一个 UITableViewController 和 UIViewController(都是子类)。

所以,在 MICSpeakersTableViewController 中:UITableViewController 我有这个:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
MICSpeakerDetailViewController *detailViewController = [[MICSpeakerDetailViewController alloc] initWithNibName:@"Detail" bundle:nil];

[detailViewController setSpeaker:[[self getSpeakers] objectAtIndex:indexPath.row]];
[self.navigationController pushViewController:detailViewController animated:YES];
}

当我选择它并填充扬声器时它会被调用(因为它不是零并且描述匹配)。

然后我在同一个实现中有这个:

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSIndexPath *indexPath = [ self.tableView indexPathForCell:sender];

if ([segue.identifier isEqualToString:@"Detail"])
[segue.destinationViewController setSpeaker:[[self getSpeakers] objectAtIndex:indexPath.row]];
}

它也被调用并且 segue.identifier 是 Detail 并且 destinationViewController 的扬声器设置正确(不是零,描述匹配)。我不太确定为什么我必须再次设置它,因为我在 didSelectRowAtIndexPath 中设置了它,但我再次设置了它,它似乎无害。

最后,在MICSpeakerDetailViewController中调用了initWithNibName方法,self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];返回一个实例。

但是,segue 永远不会发生,也永远不会调用 viewDidLoad。

它可能有点小,但我想不通...有什么建议吗?

编辑:这是显示 segue 和 Controller 的 Storyboard屏幕截图:

enter image description here

最佳答案

您必须将 View Controller 嵌入到导航 Controller 中才能使推送转场工作。我不知道为什么它让你在没有这个的情况下定义它们。

为此,单击您的 TableView Controller ,然后选择编辑器 --> 嵌入 --> 导航 Controller 。如果你也应该在标签栏 Controller 中,那么导航 Controller 以类似的方式嵌入其中。您应该看到以下内容:

enter image description here

您的 segue 现在可以工作了。

关于iphone - 带有 prepareForSegue 的 UITableView didSelectRowAtIndexPath 但未调用 didLoadView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9415435/

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