segue上没有UIScrollView

时间:2014-02-14 12:22:26

标签: uiscrollview segue

我遇到两个ViewController之间的一个segue的问题,当我尝试记录segue.destinationViewController.scrollView它的NIL时,我的情况就是问题,因为我需要滚动视图在这一点上可用。 -prepareForSegue:sender

第一个代码块是我的-prepareForSegue:sender:方法的基本表示。第二个代码块是我发现做我想要的方法,但不是我想要的方式。

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
        ViewController *viewController = (ViewController *)[segue destinationViewController];
        viewController.questions = selectedIndexArray;
        NSLog(@"scrollView: %@", [viewController scrollView]); // this is logged as nil
}

-

但是,如果我在scrollView -setQuestions:方法中记录ViewController属性再次为NIL,直到我执行延迟:

double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC));
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
    NSLog(@"scrollView: %@", _scrollView); // returns object address and description
});

我不喜欢dispatch_after方法,因为100毫秒的延迟是显而易见的,我宁愿跳过它。

那么如何在scrollView开始提供prepareForSegue:sender:属性?

1 个答案:

答案 0 :(得分:0)

我只是为这个例子移动我的代码:

NSLog(@"scrollView: %@", _scrollView);
<{1}}

中的{p>到-viewDidLoad方法