加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

objective-c – NSInvalidArgumentException reason接收方没有标

发布时间:2020-12-14 20:06:27 所属栏目:百科 来源:网络整理
导读:我有一直在坐的问题.我有一个UIViewController列表和一个UIViewController登录. 在登录时,我有一个按钮“完成”,也是同一个UIViewController上的另一个隐藏的按钮,它具有列表(类型:推送).我在名为“LoginToList”的 xcode的界面构建器中给了它一个标识符.现
我有一直在坐的问题.我有一个UIViewController列表和一个UIViewController登录.
在登录时,我有一个按钮“完成”,也是同一个UIViewController上的另一个隐藏的按钮,它具有列表(类型:推送).我在名为“LoginToList”的 xcode的界面构建器中给了它一个标识符.现在从另一个类(一个运行的类,登录是主动控制器)我打电话:

[[Login sharedLogin] performSegueWithIdentifier:@"LoginToList"];

Login类显然具有标识符“LoginToList”

但我不断得到:

'NSInvalidArgumentException',reason: 'Receiver (<Login: 0x6d79d90>) has no segue with identifier 'LoginToList''

(id)sharedLogin如下所示:

+ (id) sharedLogin {
    static Login *sharedLogin = nil;

    @synchronized(self) {
        if (sharedLogin == nil) {
            sharedLogin = [[self alloc] init];
        }

        return sharedLogin;
    }
}

如果任何人有任何想法为什么说,我会很高兴听到它! :D我不知道我是否缺少一些愚蠢的东西,但是我不能发现它:(

编辑:我使用UIViewControllers themselfves(登录名和列表)在interfacebuilder中创建一个segue(ctrl点击从登录到列表中的拖动).然后我命名为segue“LoginToList”,换句话说,我给它标识符.我点击了segue,在右上角有一个我使用的“标识符”字段.

我仍然收到错误,说Login没有标识符“LoginToList”.
伤心

解决方法

就您的代码段而言,您似乎试图从登录控制器中创建一个单例,但只做了一半.

无法找到seque,因为Controller是使用故事板初始化的,而不是使用您的共享类方法.所以你最终有两个独立的实例.此外,您的类方法不会使用故事板绑定初始化控制器,因此您在此处没有任何约束.

您应该尝试将LoginController的实例(已初始化的未命名的故事板段等)引用到“其他类”,并使用该实例.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读