Objective-C – 如何在iPhone SDK中获取UIView的superView的UIViewController?

Objective-C – 如何在iPhone SDK中获取UIView的superView的UIViewController?,第1张

概述我有一个UIViewController,其中有一个UITextView从界面builder.Now添加。现在我想推一个视图,当我点击超链接或电话号码。我可以使用我在stackoverflow中找到的方法来检测哪个URL被点击。这是方法 @interface UITextView (Override)@end@class WebView, WebFrame;@protocol WebPol 我有一个UIVIEwController,其中有一个UITextVIEw从界面builder.Now添加。现在我想推一个视图,当我点击超链接或电话号码。我可以使用我在stackoverflow中找到的方法来检测哪个URL被点击。这是方法

@interface UITextVIEw (OverrIDe)@end@class WebVIEw,WebFrame;@protocol WebPolicyDecisionListener;@implementation UITextVIEw (OverrIDe)- (voID)webVIEw:(WebVIEw *)webVIEw decIDePolicyForNavigationAction:(NSDictionary *)actioninformation request:(NSURLRequest *)request frame:(WebFrame *)frame decisionListener:(ID < WebPolicyDecisionListener >)Listener{    NSLog(@"request: %@",request);}@end

现在我想得到textvIEw的supervIEw的vIEwController,以便当我点击URL /电话号码时,我可以推送另一个vIEwController。

解决方法 您不能直接访问它,但您可以通过遍历响应器链来查找下一个视图控制器(如果有的话)。

这是the Three20 framework这样做的:

- (UIVIEwController*)vIEwController{    for (UIVIEw* next = [self supervIEw]; next; next = next.supervIEw)    {        UIResponder* nextResponder = [next nextResponder];        if ([nextResponder isKindOfClass:[UIVIEwController class]])        {            return (UIVIEwController*)nextResponder;        }    }    return nil;}
总结

以上是内存溢出为你收集整理的Objective-C – 如何在iPhone SDK中获取UIView的superView的UIViewController?全部内容,希望文章能够帮你解决Objective-C – 如何在iPhone SDK中获取UIView的superView的UIViewController?所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存