我遇到两个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:
属性?
答案 0 :(得分:0)
我只是为这个例子移动我的代码:
NSLog(@"scrollView: %@", _scrollView);
<{1}} 中的{p>到-viewDidLoad
方法