objective-c – 从app delegate中删除模态视图控制器
发布时间:2020-12-14 18:11:19 所属栏目:百科 来源:网络整理
导读:我正在使用facebook SDK登录我的应用程序.如果用户未登录,则会以模态方式显示登录VC.用户点击登录后,如果登录成功,它会向App Delegate发出警报.如果是的话,我想解雇模态登录VC.我如何从应用代表执行此操作? 解决方法 appDelegate需要某种方式来知道托管view
我正在使用facebook SDK登录我的应用程序.如果用户未登录,则会以模态方式显示登录VC.用户点击登录后,如果登录成功,它会向App Delegate发出警报.如果是的话,我想解雇模态登录VC.我如何从应用代表执行此操作?
解决方法
appDelegate需要某种方式来知道托管viewController是谁,因此它可以发送dismiss消息.你需要找出一些方法来实现这一目标.一种方法是在appDelegate“callDismissOnMeIfFaceBookFails”上定义一个ivar,并在这种情况下设置它,否则为零.
注意如果它的nil,则appDelegate可以发送dismiss消息,没有任何开销没有问题!使用nil消息传递对您有利(我一直使用它). [旁白:我看到这么多代码“if(obj)[obj message];”不要做if – 只是发送消息 – 如果obj是nil它没有效果并且被有效处理!] 编辑: 所以你有一个AppDelegate类.在#interface中定义一个属性: @property (nonatomic,strong) UIViewController *callDismissOnMeIfFaceBookFails; 在实现中你@synthesize它.定义方法: - (void)dismissLoginView { [callDismissOnMeIfFaceBookFails dismissModalViewControllerAnimated:YES]; callDismissOnMeIfFaceBookFails = nil; // don't need it now,this unretains it } 因此,在呈现模态视图控制器之前,呈现对象将appDelegate属性“callDismissOnMeIfFaceBookFails”设置为自身. 当用户成功登录后,登录对象会将消息发送到appDelegate,告诉它解除LoginView. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |