我有一个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];
答案 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;
希望这会有所帮助