从另一个类调用UIWebView方法

时间:2013-03-09 16:10:17

标签: java ios xcode uiviewcontroller uiwebview

好吧,我确定这很简单,但我会尽力解释我正在做的所有事情,所以有人可以告诉我我的错误。 Xcode,iOS SDK 6.1,我正在使用StoryBoard。

- 我的MenuViewController(View Controller)带有一些按钮。在Identity检查器中,我设置了自定义类。每个按钮在MenuViewController.h中都有它的出口(使用Ctrl拖动)。每个按钮都在MenuController.m中合成,到目前为止我唯一要做的就是在MenuViewController.m中的-viewDidLoad方法中设置背景

- 我有另一个WebViewController(带导航栏,条形按钮和UIWebView的视图控制器)。我还为该ViewController创建了新类,并在Identity检查器中设置了它。 WebView在WebViewController.h中有它的出口,它在WebViewController.m

中合成

- 我已经通过Xcode在这两个ViewControllers之间建立了联系。我的MenuViewController中的一个按钮是打开WebViewController(我通过Ctrl + Dragging将该按钮添加到WebViewController并将样式设置为Modal)。我在WebViewController的NavigationBar中使用按钮做了同样的事情,点击后打开MenuViewController的连接(类似于后退按钮)。

- 现在,当调用WebViewController中的-viewDidLoad方法时,WebView正在打开一些网页。

我想做的是在我的MenuViewController中设置buttonPressed动作,例如,如果按下一个按钮,我想切换到WebViewController并打开一些特定的URL。如果按下另一个按钮,我还想打开相同的WebViewController并加载一些不同的URL。这应该不难,但我希望有人向我展示从另一个类调用webView方法的正确方法。我是Objective C的新手,到目前为止我所知道的语言只有Java,所以我对这个.h .m的东西有点困惑,不知道在哪里正确地声明了什么。此外,如果有人可以比较一下Objective-C中的内容,那么这对于理解来说非常有用。

谢谢大家!

1 个答案:

答案 0 :(得分:1)

我不使用故事板并做一些这样的事情:

在你的WebViewController .m文件中创建一个像这样的方法:

-(id)initWithURL:(NSString *)urlstring
{
    self = [super init];
    receivedURL = [NSURL URLWithString:urlstring];
    return self;
}

并在.h文件中声明NSURL的对象

NSURL *receivedURL;

就在@end

之上
-(id)initWithURL:(NSString *)urlstring;

并在你的viewDidLoad方法中做WebViewController

[webview loadRequest:[NSURLRequest requestWithURL:receivedURL]];

现在,在执行按钮操作时,在MenuViewController中执行以下操作:

WebViewController *webViewObj = [[WebViewController alloc]initWithURL:yourURLString];
[self presentModalViewController:webViewObj animated:YES];