gpt4 book ai didi

ios - IBAction 不起作用

转载 作者:行者123 更新时间:2023-11-28 19:44:20 25 4
gpt4 key购买 nike

我在 Storyboard 中有一个名为 nextButton 的 uibarbuttonitem,它通过一个 segue 转到另一个 ViewController。但是当我尝试在另一个文件上添加这个方法时:

- (IBAction)nextButtonPressed:(id)sender {

NSLog(@"Hello")
}

输出没有显示在控制台上。我获得显示此消息的按钮的唯一方法是当我在 Storyboard中取出 segue 时。当我这样做时,我添加了以下方法,以便在单击按钮时以编程方式完成 segue:

- (IBAction)nextButtonPressed:(id)sender {

NSLog(@"Hello");

GameDetailsTableViewController *gameDetails = [[GameDetailsTableViewController alloc]init];
[self.navigationController pushViewController: gameDetails animated:YES];
}

但是当我这样做时,控制台显示错误:

'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

我需要帮助来弄清楚如何确保按钮显示消息并在单击时转到下一个 View Controller 。

最佳答案

可以将按钮分配给 IBAction 方法或 segue。

如果您使用 segue,请在您的 Controller 中实现 -prepareForSegue:sender: 以在执行 segue 时运行任何其他代码。例如:

- (void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
if ([[segue identifier] isEqual:@"gameDetailSegue"])
{
GameDetailsTableViewController* gameDetails = (id)[segue destinationViewController];
gameDetails.cheatMode = self.prefs.cheatModeEnabled;
}
}

如果您使用操作方法,那么您必须手动呈现 View Controller 。您还必须从 Storyboard 中实例化 View Controller :

- (IBAction)nextButtonPressed:(id)sender
{
GameDetailsTableViewController* gameDetails =
[self.storyboard instantiateViewControllerWithIdentifier:@"gameDetailController"]
gameDetails.cheatMode = self.prefs.cheatModeEnabled;
[self.navigationController pushViewController:gameDetails animated:YES];
}

无论哪种情况,您都必须为 Storyboard 中的转场和 View Controller 分配标识符。

关于ios - IBAction 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33049068/

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