从其他ViewController访问UIScrollView

时间:2012-10-12 16:04:12

标签: ios xcode

我有一个viewcontroller,如果我按下一个按钮,另一个viewController被加载,但第一个没有被卸载。我想从第二个视图控制器访问一个变量,实际上是一个UIScrollView,这样我就可以这样使用它了:

scroll1.hidden = YES;

我该怎么做?我尝试导入.h文件,但仍然无法使用UIScrollView

编辑:

NSArray* stack = [self.navigationController viewControllers];
NSInteger currentIndex = [stack indexOfObject:self];
ViewController* linkToA = (ViewController*)[stack objectAtIndex:currentIndex - 1];

[linkToA.scroll1.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
[linkToA.scroll1 addSubview:linkToA.backgroundImage];

ViewController *linkToA = [[ViewController alloc] init];
linkToA = (ViewController*)self.presentingViewController;

[linkToA.scroll1.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];
[linkToA.scroll1 addSubview:linkToA.backgroundImage];

1 个答案:

答案 0 :(得分:1)

只需确保第一个视图控制器在标题中确实具有scrollView的属性:

@property (nonatomic, strong) UIScrollView *scrollView;

如果你没有最新的xcode将@synthesize scrollView放到第一个控制器的实现中

假设您的第一个控制器是A,第二个控制器是B

如果B是作为模态添加的,那么使用它:

linkToA = (A*)B.presentingViewController;

如果B被添加到navigationControllerStack:

NSArray* stack = [B.navigationController viewControllers];
NSInteger currentIndex = [stack indexOfObject:B];
linkToA = (A*)[stack objectAtIndex:currentIndex - 1];

你有一个linkToA之后你必须做

linkToA.scrollView.hidden = YES;

希望这会有所帮助