gpt4 book ai didi

ios - 执行由 UITableViewCell 调用的 Segue

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:02 24 4
gpt4 key购买 nike

我在自定义表格 View 单元格中有一些 UIButtons,当按下它们时,我希望它们在 View Controller 中调用 segues,该 View Controller 是单元格所在的表格 View 的宿主。我现在正在做的是声明这样的操作: -(无效) Action ;

在 TableView 所在的类中。然后我从单元格中调用该操作,如下所示:

ViewController *viewController = [[ViewController alloc] init];
[viewController action];

但是,当调用操作时,它说 View Controller 没有这样的转场,我知道这是不正确的。从 View Controller 本身调用“ Action ”非常有效,而不是从单元格中调用。

此外,这里是执行转场的代码:

-(void)action {
[self performSegueWithIdentifier:@"action" sender:self];
}

我怎样才能让它工作?

如有任何建议,我们将不胜感激。

更新:

我只是想像这样在单元格上设置一个委托(delegate):

单元格的头文件: @class PostCellView;

@protocol PostCellViewDelegate
-(void)action;
@end

@interface PostCellView : UITableViewCell <UIAlertViewDelegate, UIGestureRecognizerDelegate>

@property (weak, nonatomic) id <PostCellViewDelegate> delegate;

在单元格的主文件中,我这样调用操作: [ self 委托(delegate)行动];

在承载 TableView 的 View 的标题中,我像这样导入单元格: #import "PostCellView.h"

@interface ViewController : UIViewController <UITableViewDelegate, UITableViewDataSource, PostCellViewDelegate>

然后在该 View 的主文件中我有单元格操作:

-(void)action {

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

}

但我检查过,该操作从未执行过。当我从单元格调用操作时,我进行了记录,我将 NSLog 放在操作本身上,并且用于从单元格调用它的日志有效但不是操作。

最佳答案

我认为您的问题出在这个 ViewController *viewController = [[ViewController alloc] init];
[viewController Action ];
您正在启动一个新的 ViewController 而不是获取单元格所在的当前 View Controller 。

也许你可以在单元格上设置一个委托(delegate),这样单元格就有一个对 viewController 的引用

关于ios - 执行由 UITableViewCell 调用的 Segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763529/

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