0
我有兩個ViewController之間的一個segue問題,當我嘗試登錄segue.destinationViewController.scrollView
它是NIL,在我的情況下,這是問題,因爲我需要該scrollView在此時可用。 -prepareForSegue:sender
。UIScrollView不存在於segue
第一碼塊是我的-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
}
-
但是,如果我從-setQuestions:
方法日誌scrollView
財產在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:
回到那裏?
是滾動視圖視圖控制器的公共財產? – Nick