【问题标题】:ViewDidAppear is not being called未调用 ViewDidAppear
【发布时间】:2013-10-25 08:51:01
【问题描述】:

我正在使用一个代理 UITabbarController 和这样的过渡动画:

-(BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {

    NSArray *tabViewControllers = tabBarController.viewControllers;
    UIView * fromView = tabBarController.selectedViewController.view;
    UIView * toView = viewController.view;
    if (fromView == toView)
        return TRUE;
    NSUInteger fromIndex = [tabViewControllers indexOfObject:tabBarController.selectedViewController];
    NSUInteger toIndex = [tabViewControllers indexOfObject:viewController];

    [UIView transitionFromView:fromView
                    toView:toView
                  duration:0.3
                   options: toIndex > fromIndex ? UIViewAnimationOptionTransitionFlipFromLeft : UIViewAnimationOptionTransitionFlipFromRight
                completion:^(BOOL finished) {
                    if (finished) {
                        tabBarController.selectedIndex = toIndex;
                    }
    }];
    return true;
}

只有这打破了我的整个ViewDidAppear 的观点。在标签之间切换时,我将UIWebView 重置为主页,但这不再起作用。有什么建议么?这是我的VieDidLoad

-(void)viewDidAppear:(BOOL)animated{

    [super viewDidAppear:animated];
    _progressProxy = [[NJKWebViewProgress alloc] init];
    _webView.delegate = _progressProxy;
    _progressProxy.webViewProxyDelegate = self;
    _progressProxy.progressDelegate = self;

    [self loadSite];
    [TestFlight passCheckpoint:@"Bekijkt homepage"];
}

[self loadSite]; 定义为:

-(void)loadSite
{
    NSString *dealerurl = [[NSUserDefaults standardUserDefaults] stringForKey:@"name_preference"];
    NSString *urlAddress= @"http://www.sportdirect.com/shop/";
    NSURLRequest *req = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:urlAddress]];
    [_webView loadRequest:req];
    [[_webView scrollView] setBounces: NO];
}

提前致谢。

【问题讨论】:

  • 您的代码看起来不错,在 viewDidAppear 中设置断点并尝试用 viewWillAppear 替换您的 viewDidAppear 方法
  • @DavidG。事实证明,它实际上在每个开关上都达到了在self loadsite 上设置的断点.. 它只是没有改变UIWeview..
  • OK,在 -(void)loadSite 的第一行设置断点,并检查值,检查是否有东西为零。我会添加这个方法来识别 webView 是否加载失败: - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error { NSLog(@"Error"); }
  • _webView UIWebView * nil 0x00000000 _webView is... 如何摆脱它?
  • 什么时候会出现这个错误?我会承认将所有 _propertyNamen 替换为 self.propertyName,例如将 _webView 替换为 self.webView

标签: ios uitabbarcontroller viewdidappear


【解决方案1】:

变化:

[_webView loadRequest:req];

到这里:

self.webView loadRequest:req;

我认为这将撤消nil

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 2019-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    相关资源
    最近更新 更多