0

我有一个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];
4

1 回答 1

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;

希望这会有所帮助

于 2012-10-12T16:20:03.833 回答