2011-04-24 72 views
-1

时,我有一个自定义的UIWebView这样写的UIActivityIndi​​catorView不会隐藏:iPhone停止

- (void) aFunction { 
    MiniWebViewController* oneViewController = [[MiniWebViewController alloc] initWithFrame:CGRectMake(/*Some Rect*/]; 
      oneViewController.webView.tag = i; 
      oneViewController.destinationURL = /*SomeURL*/; 
      oneViewController.webView.delegate = self; 

      [self.view addSubview:oneViewController.view]; /* the Web view is inside this one */ 
      [oneViewController run]; 
    } 

    - (void) webViewDidFinishLoad:(UIWebView *)webView { 
     int webViewID = webView.tag; 
     MiniWebViewController* webViewController = [self.webViews objectAtIndex:webViewID]; 
     [webViewController.activityIndicatorView stopAnimating]; 
    } 

    - (void)webViewDidStartLoad:(UIWebView *)webView { 
     int webViewID = webView.tag; 
     MiniWebViewController* webViewController = [self.webViews objectAtIndex:webViewID]; 
     [webViewController.activityIndicatorView startAnimating]; 
    } 

进入IB隐藏时也停止了被选中。一切都有联系。指标的风格被设置为IB中的“大白”。

运行时,指标不大,但很小。
它已成功启动并停止(委托调用被触发),但在停止时不会隐藏。

有什么问题?我没有看到...

+1

如果您使用的是Xcode 3.x,您是否保存了XIB?它是否正确连接到您的视图控制器?放入'Log'语句进行​​测试以确保您的指标不为零。 NSLog(@“indicatar nil:%i”,activityIndi​​catorView == nil);' – 2011-04-24 00:39:03

+0

@Wayne Hartman:这不是零,当然,是的,XIB被保存了。仅供参考我正在运行XCode 4.对于momenbt,我手动隐藏它。但我想知道为什么它看起来不大,为什么它在停止时不隐藏... – Oliver 2011-04-24 00:58:24

回答

-1

我很愚蠢,而XCode/cocoa真的没有帮助。

我已经加载了错误的XIB名称,不存在存在。 因此,我要求加载一些不存在的东西,并且应用程序stil可以正常工作,甚至可以显示并使用不存在的对象。直到一个呼叫不能按预期工作。没有崩溃... 这是无稽之谈。

5

仔细查看代码后,您正在修改您的init方法中的UIActivityView。改变这些,使他们在你的viewDidLoad。在init中,您查看的内容尚未加载,因此,您的控制器中尚未创建那些对象的实例。

这些都是需要移动的声明:

self.activityIndicatorView.hidesWhenStopped = YES; 

self.view.frame = frame; 
self.activityIndicatorView.center = self.webView.center; 

这又回到一个基本的Objective-C的:发送消息到nil对象...返回nil。有时这是一个烦人的功能,因为没有编译时间警告,也没有任何运行时异常 - 语言的功能

+0

你也许是对的,但是框架和活动指标中心在从那里调用时是正确设置的。第一行仅用于测试目的,因为此属性已经设置为IB。我可以删除它,它不会改变任何东西。即使移入viewDidLoad。 – Oliver 2011-04-24 01:13:39

+0

错误:当移入viewDidLoad时,self.activityIndi​​catorView.center = self.webView.center不再起作用。 – Oliver 2011-04-24 01:17:18

+0

我从课上删除了self.activityIndi​​catorView.hidesWhenStopped = YES。我仍然陷入IB。问题仍然存在,我不认为这可能是由框架init的错误放置引起的。 – Oliver 2011-04-24 01:18:57