我正在尝试创建UIActivity的子类,以便向UIActivityViewController添加一个自定义按钮。我希望这个自定义按钮能够在不离开应用程序的情况下打开链接。我已经找到了许多允许在safari中打开东西的解决方案,但我不知道是否可以在我的应用程序中打开一个UIWebview (也许是Modal view?)。
我试着在委托方法中创建一个` `UIWebview来处理点击,但是因为这不是一个视图控制器,所以我不能将它添加到视图层次结构中。
- (void)prepareWithActivityItems:(NSArray *)activityItems{
UIWebView *webView=[[UIWebView alloc] initWithFrame:CGRectMake(0,0,320,480)];
NSURLRequest *urlRequest;
NSURL *urlforWebView;
urlforWebView=[NSURL URLWithString:@"http://www.google.com"];
urlRequest=[NSURLRequest requestWithURL:urlforWebView];
[webView loadRequest:urlRequest];
}发布于 2013-08-09 21:09:31
//示例:需要先将webview添加到mainview中
UIWebView *webView = [[UIWebView alloc] init];
[webView setFrame:CGRectMake(0, 0, 320, 460)];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]];
[[self view] addSubview:webView];发布于 2013-08-09 21:39:58
我相信这个项目实现了您想要做的事情,但是它是在safari中打开的:https://github.com/davbeck/TUSafariActivity非常适合作为起点。
活动本身无法打开视图,因为它没有连接到控制器视图层次结构。您需要某种方法来告诉主机控制器用户已经选择了您的活动。最简单的方法是通过通知:
有很多使用通知的示例,比如下面的Send and receive messages through NSNotificationCenter in Objective-C?
发布于 2013-10-27 08:08:11
尝尝这个
这里的UIPlainViewController只是一个添加了WebView的自定义UIViewController。在派生的UIActivity类中实现(UIViewController *)activityViewController,如下所示:
(UIViewController *)activityViewController {
NSString *page = @"some url";
NSURL *url = [[NSURL alloc] initWithString:page];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
[((UIPlainViewController*)self.plainViewController).webView loadRequest:request];
return self.plainViewController;}
https://stackoverflow.com/questions/18147127
复制相似问题