来自按钮的 IOS segue(推送,模态或自定义)不起作用

标签 ios storyboard segue

过去两天我一直在努力解决这个问题,因此欢迎提供任何关于为什么会发生这种情况的信息或想法。

所以我的问题是,当我在界面生成器中向我的 View Controller 添加一个按钮并创建按钮正常执行的正常 ibaction 代码时,我然后从按钮拖放到 View Controller 以创建一个 segue ,这也能正常工作。

当我运行应用程序时出现问题,应用程序将正常运行,直到我按下按钮(注意:我仍然有按钮不 Action 的基本框架,但我没有让它运行任何代码,它是完全空白的) 转到 segue,当我按下按钮时,它会停止应用程序并给出此错误消息

    2013-09-12 08:43:17.696 MessAround[51565:c07] -[UIButton text]: unrecognized selector sent to instance 0xa1cb6c0
2013-09-12 08:43:17.699 MessAround[51565:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIButton text]: unrecognized selector sent to instance 0xa1cb6c0'
*** First throw call stack:
(0x1d09012 0x11ede7e 0x1d944bd 0x1cf8bbc 0x1cf894e 0x3ac0 0x57cac7 0x57cb54 0x1201705 0x138920 0x1388b8 0x1f9671 0x1f9bcf 0x1f8d38 0x16833f 0x168552 0x1463aa 0x137cf8 0x1f42df9 0x1f42ad0 0x1c7ebf5 0x1c7e962 0x1cafbb6 0x1caef44 0x1caee1b 0x1f417e3 0x1f41668 0x13565c 0x22bd 0x21e5)
libc++abi.dylib: terminate called throwing an exception

无论我向该 View 添加多少个按钮,它们都会出现此错误,但是我可以向我的任何其他 View 添加一个按钮,并对该 View 进行 segue,它可以完美地工作。

提前感谢您的任何想法

最佳答案

好的,所以我找到了问题所在,我什至没有意识到我制作的按钮正在调用 prepareForSegue 方法,在那个方法中我使用了来自发件人的数据,但是按钮没有提供正确的数据所以它坏了。

这是问题代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    urlToPurchase = [NSString stringWithFormat:@"%@",[sender text]];

    if([[segue identifier] isEqualToString:@"PurchaseDomain"])
    {        
        PurchaseView *pv = [segue destinationViewController];
        pv.urls = _urls;
        pv.domainIsAvailable = domainIsAvailable;
        pv.tld = _tld;
        pv.chosenDomain = urlToPurchase;
    }

}

这是工作代码:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    /*
      urlToPurchase = [NSString stringWithFormat:@"%@",[sender text]]; Needs to be
      moved to be inside the if statement below
    */

    if([[segue identifier] isEqualToString:@"PurchaseDomain"])
    {        
        //been moved to here
        urlToPurchase = [NSString stringWithFormat:@"%@",[sender text]];

        PurchaseView *pv = [segue destinationViewController];
        pv.urls = _urls;
        pv.domainIsAvailable = domainIsAvailable;
        pv.tld = _tld;
        pv.chosenDomain = urlToPurchase;
    }
}

非常感谢所有人,尤其是@Eiko 试图帮助我!

关于来自按钮的 IOS segue(推送,模态或自定义)不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18757683/

相关文章:

iphone - iPad SplitViewController 用法 - 在您已经拥有 Split View后不允许推送 SplitViewController 的设计理念是什么?

triggers - WPF DataGrid - 插入数据网格时突出显示新行

ios - 如何将手势切换回上一个 View ios?

ios - 从 Modal/Popover 展开 Segue,导致对开始/结束外观转换的调用不平衡

swift - 在使用 Swift 创建新条目两个 View Controller 后返回原始详细信息 View Controller

ios - 项目中的颜色代码未正确执行

ios - 删除Char * Array Objective C中的第一个元素

iphone - XCode 4.5 Storyboard 不显示我的 View Controller 的一些导航栏

ios - 不从 JSON 调用中获取数据

ios - Iphone 游戏,完整/精简版还是应用程序内?