我正在使用ECSlidingViewController。
在示例项目中,我在第一个视图上添加了一个带有IBAction的按钮
我希望第一个视图上的按钮转到第二个视图(不使用滑出导航)。
- (IBAction)btnPressed:(id)sender {
UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondTop"];
[self.slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
CGRect frame = self.slidingViewController.topViewController.view.frame;
self.slidingViewController.topViewController = newTopViewController;
self.slidingViewController.topViewController.view.frame = frame;
[self.slidingViewController resetTopView];
}];
}
使用此代码,它只会转到导航滑出菜单,而不会转到第二个
答案 0 :(得分:7)
不要总是使用self.slidingViewController
。它是派生属性,而不是静态值。所以发生的事情是你用第二个视图替换第一个视图然后第一个视图再也无法获得滑动控制器(你打破了它的引用)。所以,请改为:
- (IBAction)btnPressed:(id)sender {
ECSlidingViewController *slidingViewController = self.slidingViewController;
UIViewController *newTopViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SecondTop"];
[slidingViewController anchorTopViewOffScreenTo:ECRight animations:nil onComplete:^{
CGRect frame = slidingViewController.topViewController.view.frame;
slidingViewController.topViewController = newTopViewController;
slidingViewController.topViewController.view.frame = frame;
[slidingViewController resetTopView];
}];
}