gpt4 book ai didi

iphone - [viewcontroller_name tableView :cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x7b3a630'

转载 作者:行者123 更新时间:2023-11-28 22:40:24 24 4
gpt4 key购买 nike

enter image description here

我有一个应用程序,它有一个 UITableViewController,它是我的设置页面。我正在使用 self.navigationController(使用 Storyboard ID)将 UITableViewController 与 presentModalViewController 一起推送。但是每次我尝试查看该页面时,它都显示异常。阅读几篇文章后,我尝试实现两种方法

- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
{
return 3;
}

- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [super tableView:tableView
cellForRowAtIndexPath:indexPath];
return cell;
}
**my .h File**

@interface Setting : UITableViewController<UITableViewDelegate,UITableViewDataSource>

我已经在 IB 中完成了所有的 UI 设置,所以我没有改变上面两个实现方法中的任何东西。

在我将 View 推送到 UITableViewController 的 mainviewcontroller 中,我使用以下代码

Setting *nextController = [[self storyboard] instantiateViewControllerWithIdentifier:@"setting"];
[self presentModalViewController:nextController animated:YES];
Setting *dvc = [[Setting alloc] init];
[self.navigationController pushViewController:dvc animated:YES];

All ui in IB

因为我已经在 IB 中设置了所有 UI,为什么我需要实现这些方法?至少我可以正确地看到 View 。

最佳答案

看起来您正在尝试对同一个 viewController 进行两次初始化。在 instantiateViewControllerWithIdentifier. 之后,您不需要 alloc] init] 至少,根据我的经验,您不需要。试试这个:

Setting *nextController = [[self storyboard] instantiateViewControllerWithIdentifier:@"setting"];
[self.navigationController pushViewController:nextController animated:YES];

这会将带有 storyBoardIDnextController 从右侧“推送”到您现有的 NavigationController 中。

但是,根据我的直觉,我相信您想以模式方式呈现一个设置 View ,它有自己的 NavigationController。在这种情况下,试试这段代码,它将设置 ViewController 包装到 NavigationController 中,并以模态方式呈现整个内容,以便您可以在设置中导航:

Setting *nextController = [self.storyboard instantiateViewControllerWithIdentifier:@"setting"];
UINavigationController *navcont = [[UINavigationController alloc] initWithRootViewController:nextController];
navcont.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:navcont animated:YES completion:nil];

或者,您可以在 Storyboard 本身中完成所有这些操作。选择您的设置 View Controller ,然后转到编辑器菜单 > 嵌入... > 导航 Controller 。然后从您的按钮创建一个 segue 到包含设置 Controller 的导航 Controller 。将 segue 设置为“Modal”,就大功告成了。

关于iphone - [viewcontroller_name tableView :cellForRowAtIndexPath:]: unrecognized selector sent to instance 0x7b3a630',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690100/

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