在ViewController中访问变量

时间:2012-12-15 21:11:39

标签: objective-c cocoa variables view controller

您好我正在开发一个基于Web视图的应用程序,我有一个WebController,我有一个包含当前URL的变量。

我最近添加了启动视图的代码,这个工作正常,此视图还包含另一个Web视图,如果我将网站加载到此网页中,此网页视图工作正常:

[[mywebview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:
               [@"http://www.google.com/search?hl=en&q=" stringByAppendingString:@"test"]]]];

但是我试图访问保存当前URL的变量,如下所示:

 [[mywebview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:
               [@"http://www.google.com/search?hl=en&q=" stringByAppendingString:currentURL]]]];

然而,当通过链接到WebController来执行此操作时,currentURL似乎没有任何关系,但是当从第一个响应者执行此操作时,此功能完全正常(当然视图不再显示)

我的问题是如何在从WebController链接时获取currentURL变量?

我对可可相对较新,所以如果这是一个简单的问题,我很抱歉!

编辑:从评论中添加

方法initWithWindowController currentURL设置为@""dealloc设置为nil。 currentURL来自其他网络视图,请参见此处:

- (void)webView:(WebView *)wv didStartProvisionalLoadForFrame:(WebFrame *)frame {
    if (frame != [self.webView mainFrame]) 
        return; 
    self.currentUrl = [[[[frame provisionalDataSource] request] URL] absoluteString];
    [self retain]; 
}

我在WebController.h中声明currentURL

@interface WebController : NSObject <DOMEventListener>
 { 
   IBOutlet NSString *currentURL; 
 } 
@property (nonatomic, copy) IBOutlet NSString *currentURL; 
@end 

我正在尝试在DisplayInView函数中使用WebController.m中的currentURL。

-(IBAction) DisplayInView:(id) sender 
{      
if ([siteview isInFullScreenMode])           
 {                
  [siteview exitFullScreenModeWithOptions:nil];           
 }      
else           
 {                
  [[mywebview mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:                [@"google.com/search?hl=en&q="stringByAppendingString:currentURL]]]];                siteview enterFullScreenMode:[[siteview window] screen] withOptions:nil];           
 } 
} 
@synthesize siteview; 
@end 

1 个答案:

答案 0 :(得分:0)

我不知道这是您的问题,还是复制和粘贴错误,但您发布的代码是:

[@"google.com/search?hl=en&q="; stringByAppendingString:currentURL]]]];

中间有一个分散的分号。这甚至不应该编译。