将变量从AppDelegate传递到视图

时间:2012-01-15 17:04:59

标签: iphone objective-c xcode

我在AppDelegate中打开一个视图

with:

的AppDelegate

PushDetail *pushdtls = [[PushDetail alloc] initWithNibName:nil bundle:nil];   
pushdtls.seminarurl = [NSURL URLWithString:resourcePathURL]; /passing URL
[self.window presentModalViewController:pushdtls animated:YES];

PushDetail.h

@property (nonatomic) NSURL *seminarurl;

PushDetail.m

- (void)viewDidLoad
{
    NSURLRequest *requestObj = [NSURLRequest requestWithURL:seminarurl];
    [pushDetails loadRequest:requestObj];
}

但是webview是空的......我做错了什么?

以及第二个问题如何关闭我打开的视图?

- (IBAction) closeNews{
    //[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
    //[self release];
    [self dismissModalViewControllerAnimated:YES];
}

不起作用:(

4 个答案:

答案 0 :(得分:0)

您可以在视图控制器中实现UIWebViewDelegate协议,并自行获取结果/错误消息。

didFailLoadWithError - 有关详情,请参阅UIWebViewDelegate Protocol References

也许这只是您网址上的错字。

示例:

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error
{
    NSLog(@"oops, failed with error: %@", error);
}

答案 1 :(得分:0)

你没有指定pushDetails是什么,但我假设它是你的PushDetail控制器上的UIWebview的IBOutlet。我的猜测是你忘记将你的pushDetails插座绑定到你的nib文件中的webview。

答案 2 :(得分:0)

你可以创建一个包含所有全局变量的文件,让我们称之为GlobalVariables.h和.m。在GlobalVariables.h文件中添加此

extern NSURL *seminarurl;

@interface GlobalVariables

@property (retain, nonatomic) NSURL *seminarurl;    

@end

并在GlobalVariables.m文件中添加

#import "GlobalVariables.h"

@implements GlobalVariables

@synthesize seminarurl;

NSURL *seminarurl; // You could add what your URL is here as well you would just use '='

@end

因此,当您想要访问它或为其分配变量时,它就像访问或分配任何其他变量一样。只需记住将'GlobalVariables.h'导入到您正在使用的.m文件中。

答案 3 :(得分:0)

  1. 保留您的财产。 ex>> @property (nonatomic,retain)

  2. 如果网址是您的应用委托中的属性..您可以像这样访问它

    [UIApplication SharedApplication] .delegate.yourpropertyname;