ios - 多个按钮使用唯一标识符连接到同一个 View Controller

标签 ios xcode uibutton uistoryboardsegue ibaction

我有一个 ViewControllerA,在我的例子中大约有 15 个按钮,它们代表级别,当按下一个级别时,它会转到 ViewControllerB。现在手动 ctrl+drag 并为每个按钮创建 segue 是没有意义的。我想知道一个按钮如何连接到 ViewControllerB 并具有唯一标识符然后将一个对象(换句话说数据)传递给 ViewControllerB 以识别用户按下的级别。我还想指出我有一个推送 View Controller 。 到目前为止,我不成功的尝试之一是按住 ctrl 并拖动所有按钮并创建一个名为的方法:(在我的例子中,按钮标题是级别编号)

- (IBAction)buttonPressed:(UIButton *)sender {
    [self performSegueWithIdentifier:[sender currentTitle] sender:self];  
}

之后,我调用了 prepareForSegue:segue sender:sender 方法。老实说,我是 iOS 开发的新手。任何有用的教程或文章对我来说都很棒。 在此先感谢所有帮助者。

最佳答案

您接近失败的尝试。您只需要一个标识符用于您在 IB 中直接从 Controller 到 VCB 设置的单个 segue。在您的操作方法中,所有按钮的调用,执行此操作(注意我在 sender 参数中传递按钮):

- (IBAction)buttonPressed:(UIButton *)sender {
    [self performSegueWithIdentifier:@"MySegueIdentifier" sender:sender];  
}

然后在 prepareForSegue 中,您可以使用 sender 参数获取按钮的标题:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UIButton *)sender {
        NSString *title = sender.currentTitle;
        // do what you need with the title
}

关于ios - 多个按钮使用唯一标识符连接到同一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20364517/

相关文章:

iphone - 如何在 xcode 中运行 PJSIP?

iphone - 停止滚动 ScrollView 中的最后一个对象

ios - 如何将 UIButton.isSelectable 与 RXSwift 绑定(bind)

ios - 关闭 iOS 模式后,产生 WaitForSeconds 中断 (Unity 3D)

ios - Swift 子类与协议(protocol)

objective-c - 如何编写 xcode 用户脚本以使用 NSLocalizedString(<string>, nil) 包围光标所在的字符串

ios - UIButton图像大小

ios - tableFooterView 中的 UIButton 未注册触摸

ios - 可以在 viewDidLoad 中使用 layoutIfNeeded 来确定角半径大小吗?

ios - 如何在 Xcode 11 上安装 iOS 9.x 模拟器?