iphone – Xcode Objective-C Segue“正在进行演示”

iphone – Xcode Objective-C Segue“正在进行演示”,第1张

概述我正在尝试开发一个允许用户使用AFNetworking登录的应用程序.我正确设置了数据库,除非用户首次登录,否则一切似乎都正常. 我所拥有的是非常简单的: [[API sharedInstance] commandWithParams:params onCompletion:^(NSDictionary *json) { 我正在尝试开发一个允许用户使用AFNetworking登录的应用程序.我正确设置了数据库,除非用户首次登录,否则一切似乎都正常.

我所拥有的是非常简单的:

[[API sharedInstance] commanDWithParams:params                               onCompletion:^(NSDictionary *Json) {                                   //result returned                                   NSDictionary* res = [[Json objectForKey:@"result"] objectAtIndex:0];                                   if ([Json objectForKey:@"error"]==nil && [[res objectForKey:@"UserID"] intValue]>0) {                                       [[API sharedInstance] setUser: res];                                       [self performSegueWithIDentifIEr:@"Login" sender:self];                                   } else {                                       //error                                       [UIAlertVIEw Title:@"Error" withMessage:[Json objectForKey:@"error"]];                                   }                               }];

基本上,上面的代码返回用户登录详细信息的结果,仅在登录详细信息匹配时才成功.如您所见,我清楚地将用户设置在整个应用程序中使用的sharedInstance中.设置用户后,我尝试执行segue,因为这是登录按钮应该执行的 *** 作.

segue确实发生了,程序正在运行,但有两个问题我无法解决,而且我花了好几个小时试图修复它.首先,我在Xcode的输出窗口中收到消息:

Warning: Attempt to present UITabbarController on LoginVC while a
presentation is in progress!

其次,为了测试用户设置是否正确,在“配置文件”屏幕上(第一个屏幕被隐藏)有一个标签,其文本设置为:

Nsstring stringWithFormat:@"Welcome %@",[[[API sharedInstance] user] objectForKey:@"username"]];

并且如果用户名实际出现或者说(null)如图所示:

您还可以看到我在那里制作的按钮,以便在输出窗口中打印用户的值.即使消息是“欢迎(null)”并按下按钮,所有值都正确,所以我不确定为什么字符串有时会为null.

这是关于我遇到的问题的故事板设置:

如果有人能帮我这个,我会真的很感激.

解决方法@H_502_43@ 正确诊断后,问题肯定是对segue的一些奇怪的和/或重复的调用.看看你的项目,问题是你的“登录”按钮同时具有IBAction方法以及从该登录屏幕到下一个控制器(标签栏控制器)的segue:

这是一个问题,因为当你按下按钮时会触发segue,但是你的 – (IBAction)登录:(ID)发送者代码会再次触发.

因为您有IBAction,所以segue不应该从按钮到下一个控制器,而应该来自控制器本身.因此,将现有的Login segue从按钮删除到下一个屏幕,并从控制器本身重新创建它:

给新的segue指定“登录”标识符,现在您的“登录”按钮不会自动执行segue本身,但会让IBAction完成其工作并手动执行SegueWithIDentifIEr.

总结

以上是内存溢出为你收集整理的iphone – Xcode Objective-C Segue“正在进行演示”全部内容,希望文章能够帮你解决iphone – Xcode Objective-C Segue“正在进行演示”所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1060436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存