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

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.

(编辑:李大同)

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

    推荐文章
      热点阅读