我使用编程式代码创建一个UIScrollView
,我的视图中有一个按钮(UIScrollView
中不存在)。
当我点击此按钮时,转到下一页,进行模态转换。我在下一页中创建了取消按钮,当我点击它返回主页面时(此页面有UIScrollView
)。
我想点击取消按钮并返回主页面调用主页面中的一个方法,并在此方法中更改ContentOfSet
我的ScrollView ...但不能正常工作!!!!
这是我的代码:
mainView.m
- (void)viewDidLoad{
UIScrollView *scrollbar = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,width, height)];
scrollbar.directionalLockEnabled = YES;
scrollbar.backgroundColor = [UIColor whiteColor];
scrollbar.maximumZoomScale = 1.0;
scrollbar.minimumZoomScale = 1.0;
scrollbar.clipsToBounds = YES;
scrollbar.showsHorizontalScrollIndicator = YES;
scrollbar.pagingEnabled = YES;
[scrollbar setContentSize:CGSizeMake(scrollbar.frame.size.width * 4,scrollbar.frame.size.height)];
scrollbar.contentOffset = CGPointMake(0, 0);
scrollbar.delegate = self;
[self.view addSubview:scrollbar];
[super viewDidLoad];
}
-(void)ChangeMainScrollContentOffset{
scrollbar.contentOffset = CGPointMake(scrollbar.frame.size.width * (3), 0);
}
此按钮位于根视图中:
- (IBAction)AddView:(id)sender{
AddStationController *add = [[AddStationController alloc]initWithNibName:@"AddStationController" bundle:nil];
[add setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self.view.window.rootViewController presentViewController:add animated:YES completion:nil];
}
这个按钮是取消按钮,用于在我的mainView中返回:
- (IBAction)BackView:(id)sender{
mainView *main = [[mainView alloc]init];
[main ChangeMainScrollContentOffset];
[self dismissViewControllerAnimated:YES completion:nil];
}
请指导我!!! 我很困惑为什么不工作ContentOffSet !!!
答案 0 :(得分:0)
我认为你的问题是你没有添加 ChangeMainScrollContentOffset ViewController.h文件的方法。
只需将其添加到ViewController.h文件中,然后再调用它。
答案 1 :(得分:0)
第二个viewController应该引用以前的视图控制器。
执行此操作时:
mainView *main = [[mainView alloc]init];
[main ChangeMainScrollContentOffset];
您创建另一个不在屏幕上的mainView实例,并在 ANOTHER scrollView上更改contentOffset:)
您应该将属性委托添加到AddStationController
<强> AddStationController.h 强>
@property (nonatomic, weak) mainView* delegate;
<强> MAINVIEW 强>:
- (IBAction)AddView:(id)sender{
AddStationController *add = [[AddStationController alloc]initWithNibName:@"AddStationController" bundle:nil];
>> add.delegate = self; <<
[add setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self.view.window.rootViewController presentViewController:add animated:YES completion:nil];
}
取消按钮操作
- (IBAction)BackView:(id)sender{
>> [self.delegate ChangeMainScrollContentOffset]; <<
[self dismissViewControllerAnimated:YES completion:nil];
}