我似乎无法弄清楚如何将 ScrollView 的委托(delegate)设置为 ScrollView 中的 View Controller 。
ChildView *child = [[ChildView alloc] init];
_scrollview.delegate = child;
我的 subview Controller 正在使用 ScrollView 委托(delegate):
@interface ChildView : UIViewController <UIScrollViewDelegate>
但它不会调用scrollViewDidScroll;
- (void)scrollViewDidScrollUIScrollView *)scrollView {
NSLog(@"%f", scrollView.contentOffset.y);
}
基本上,我希望将 ScrollView 的 ScrollView 偏移量传递给嵌套在其中的 View Controller 。
您可以通过多种方式在 Objective C 中分配属性。
正如@Aaron 所指出的,委托(delegate)属性是使用assign 设置的。这意味着如果您设置委托(delegate)的变量超出范围,则引用将变为无效。为了解决这个问题,你必须保持一个指向对象的强指针,这样它就不会超出范围。
为此,请在主视图 Controller 中创建一个属性:
@property (strong, nonatomic) ChildView * child;
然后,当您创建 subview 时,将属性设置为等于它。
self.child = ChildView *child = [[ChildView alloc] init];
现在您可以设置委托(delegate),一旦您的函数终止,它就不会超出范围。
_scrollview.delegate = self.child;
关于ios - 将 ScrollView 委托(delegate)传递给 subview Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18425074/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |