我有一个问题:D。
我目前正在使用SplitViewController。首先,我想在MasterView中隐藏TableViewController。因此,我决定将情节提要中的SubView添加到tableView中,其中将显示一个小标签。
因此,在DetailView中做出选择并单击Button之后,我想隐藏子视图并显示tableView。这一切都与动画有关。
所以这是我的代码:
在TestTableViewController.m中
-(void)AnimateView{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.1];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
fixedView.frame=CGRectMake(-500, 0,0,0);
[UIView commitAnimations];
NSLog(@"test");
并在TestDetailViewController.m中
- (IBAction)attractionButton:(UIButton *)sender
{
TestTableViewController *testTableViewController = [[TestTableViewController alloc]init];
[testTableViewController AnimateView];
}
我得到了NSLog“测试”,但是动画无法正常工作。fixedView是我的Subview,我将其拖动到头文件中,因此它是IBOutlet。
到目前为止谢谢你。
问题是,您没有在详细信息视图控制器中引用相同的主视图控制器。
您要在中创建另一个IBAction
。
为了掌握您的(“原始”)主视图控制器,请在详细视图控制器中执行以下操作:
创建一个ivar:
TestTableViewController *masterViewController;
然后引用它:
masterViewController = (TestTableViewController*)[[[self.splitViewController.viewControllers lastObject] viewControllers] objectAtIndex:0];
例如:
- (IBAction)attractionButton:(UIButton *)sender
{
masterViewController = (TestTableViewController*)[[[self.splitViewController.viewControllers lastObject] viewControllers] objectAtIndex:0];
[masterViewController AnimateView];
}
最后,在您的AnimateView
方法中,对以下内容进行更改:
[UIView animateWithDuration:0.1f animations:^
{
fixedView.frame = CGRectMake(-500, 0, 0, 0);
}
completion:nil];
希望这可以帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句