- 我的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中的内容,那么这对于理解来说非常有用。
谢谢大家!
答案 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];