我正在使用此方法尝试在我的某个类中访问UIScrollView
的属性:
AppDelegate *delegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
UINavigationController *nav = delegate.frontViewController.navigationController;
for (UIViewController *controller in nav.viewControllers) {
if ([controller isKindOfClass:[SGInitialViewController class]]) {
SGInitialViewController *sgInitialController = (SGInitialViewController *)controller;
SGPlotViewController *plotVC = [sgInitialController.childViewControllers objectAtIndex:0];
[plotVC.scrollViewMain setUserInteractionEnabled:NO];
}
班级SGInitialViewController
目前已已加载且其childViewController
SGPlotViewController
已已加载且已在屏幕上他们也是。
无论我怎么努力,我都无法改变它的属性。
关于我做错什么的任何想法?
答案 0 :(得分:1)
如果不了解应用程序的整体结构,很难看出问题出在哪里。但是,通过所有这些控制器来挖掘房产只是不好的设计。如果可以使用委托,您应该这样做 - 但有时候,根据所有这些控制器的设置方式,很难获得正确的引用,因此类可以将自己设置为委托。在这些情况下,最好使用通知。哪个类包含您的问题中的代码应该发布通知,并且应该注册SGPlotViewController以接收该通知。