Cocoa touch 如何从另一个ClassB滚动到ClassA中的UIScrollView顶部
我对Xcode和Objective C完全不熟悉,但在这个网站的帮助下,我成功地获得了一个应用程序的工作原型。但是,经过近一天的研究和尝试,目前我没有找到任何解决以下问题的方法 我在用故事板 我有两门课:Cocoa touch 如何从另一个ClassB滚动到ClassA中的UIScrollView顶部,cocoa-touch,uiscrollview,Cocoa Touch,Uiscrollview,我对Xcode和Objective C完全不熟悉,但在这个网站的帮助下,我成功地获得了一个应用程序的工作原型。但是,经过近一天的研究和尝试,目前我没有找到任何解决以下问题的方法 我在用故事板 我有两门课:ClassA和ClassB ClassA有一个containerView,其中包含另一个ViewController,该类为ClassB containerView中的ViewController包含一个UIScrollView(在ClassB中定义),我希望能够从ClassA滚动到顶部 它与此
ClassA
和ClassB
ClassA有一个containerView
,其中包含另一个ViewController
,该类为ClassB
containerView
中的ViewController
包含一个UIScrollView(在ClassB中定义),我希望能够从ClassA
滚动到顶部
它与此代码在同一类(ClassB)中工作
[滚动条设置内容偏移量:CGPointZero动画:否]代码>
…但不是来自另一个类(ClassA)
如何从ClassA
访问ClassB
中的IBOutletUIScrollView
,并告诉它向上滚动
非常感谢你的帮助 必须将iVar定义为@property
:
@interface ClassB : UIViewController {
// don't define it here as iVar like: IBOutlet UIScrollView *Scroller;
}
@property (nonatomic, strong) IBOutlet UIScrollView *Scroller; // but define it here as property
然后,您可以在ClassA
中这样访问滚动视图:
[[instanceB Scroller] setContentOffset:CGPointZero animated:NO];
在ClassB中也是这样
[_Scroller setContentOffset:CGPointZero animated:NO];
必须将iVar定义为@property
:
@interface ClassB : UIViewController {
// don't define it here as iVar like: IBOutlet UIScrollView *Scroller;
}
@property (nonatomic, strong) IBOutlet UIScrollView *Scroller; // but define it here as property
然后,您可以在ClassA
中这样访问滚动视图:
[[instanceB Scroller] setContentOffset:CGPointZero animated:NO];
在ClassB中也是这样
[_Scroller setContentOffset:CGPointZero animated:NO];
谢谢朱利安!我必须使用什么来代替“instanceB”这将是ClassB
的一个实例。我假设containerView
中包含的、属于ClassB
类的viewController是IBOutlet
或ClassA
的本地iVar。因此,您必须指向第二个viewController。如果您只在XIB中使用它,并且没有出口,只需创建一个。如果您没有获得它,请发布ClassA
的界面,以便我可以看到它可能是什么变量。是的,它是一个IBOutlet:在ClassA.h中,我写了:“IBOutlet UIView*RateEntryContainerView”;滚动程序名为“ScrollerEntryDetailRate”您需要一个类型为ClassB
的插座,因此IBOutlet ClassB*ratentrycontainerservicewcontroller
并将其连接到视图控制器,而不是视图本身。谢谢Julian!我必须使用什么来代替“instanceB”这将是ClassB
的一个实例。我假设containerView
中包含的、属于ClassB
类的viewController是IBOutlet
或ClassA
的本地iVar。因此,您必须指向第二个viewController。如果您只在XIB中使用它,并且没有出口,只需创建一个。如果您没有获得它,请发布ClassA
的界面,以便我可以看到它可能是什么变量。是的,它是一个IBOutlet:在ClassA.h中,我写了:“IBOutlet UIView*RateEntryContainerView”;滚动程序名为“ScrollerEntryDetailRate”您需要一个类型为ClassB
的插座,因此IBOutlet ClassB*ratentrycontainerservicewcontroller
并将其连接到视图控制器,而不是视图本身。