2

好的,我相信这很简单,但我会尝试详细解释我所做的一切,以便有人可以向我展示我的错误。Xcode,iOS SDK 6.1,我正在使用 StoryBoard。

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

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

- 我也通过 Xcode 在这两个 ViewController 之间建立了联系。我的 MenuViewController 中的一个按钮正在打开 WebViewController(我已经通过 Ctrl+将该按钮拖动到 WebViewController 并且样式设置为 Modal 来完成此操作)。我对 WebViewController 的 NavigationBar 中的按钮做了同样的事情,在单击时建立了打开 MenuViewController 的连接(类似于后退按钮)。

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

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

谢谢各位!

4

1 回答 1

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;

并在 WebViewController 的 viewDidLoad 方法中执行

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

现在在您的 MenuViewController 中,每当执行按钮操作时,请执行以下操作:

WebViewController *webViewObj = [[WebViewController alloc]initWithURL:yourURLString];
[self presentModalViewController:webViewObj animated:YES];
于 2013-03-09T18:21:34.640 回答