【发布时间】:2010-01-04 13:44:15
【问题描述】:
我正在创建一个应用程序,我想实现推送效果,但不使用导航控制器。有人知道实现此目的的核心动画源代码吗?我有一个像这样的视图层次结构。主控制器上有一个带有 4 个按钮的标题图像。我的意思是无论屏幕前面的视图是什么,它都会一直显示。所以我使用添加子视图方法。现在在一些视图中我想在单击表格视图单元格时进一步导航,但无法弄清楚如何实现该导航动画?
这里是添加子视图的代码......
-(IBAction)ShowDashBoardContentView
{
if(ButtonDashBoard.selected==YES)
[ButtonDashBoard setSelected:YES];
else
{
[ButtonDashBoard setSelected:YES];
[ButtonFreebies setSelected:NO];
[self.FreebiesViewMainObject.view removeFromSuperview];
[ButtonConnect setSelected:NO];
[self.ConnectContentViewObject.view removeFromSuperview];
[ButtonDeals setSelected:NO];
[self.DealsViewMainObject.view removeFromSuperview];
}
if(DashBoardContentView==nil)
{
DashBoardContent *vController =[[DashBoardContent alloc] initWithNibName:@"DashBoardContent" bundle:[NSBundle mainBundle]];
vController.view.frame=CGRectMake(0, 90, 320, 370);
self.DashBoardContentView=vController;
[vController release];
}
[self.DashBoardContentView viewWillAppear:YES];
[self.view addSubview:[self.DashBoardContentView view]];
[self BringSubviewsToFront];
}
-(IBAction)ShowConnectContentView
{
if(ButtonConnect.selected==YES)
[ButtonConnect setSelected:YES];
else
{
[ButtonConnect setSelected:YES];
[ButtonFreebies setSelected:NO];
[self.FreebiesViewMainObject.view removeFromSuperview];
[ButtonDashBoard setSelected:NO];
[self.DashBoardContentView.view removeFromSuperview];
[ButtonDeals setSelected:NO];
[self.DealsViewMainObject.view removeFromSuperview];
}
if(ConnectContentViewObject==nil)
{
ConnectContentView *vController =[[ConnectContentView alloc] initWithNibName:@"ConnectContentView" bundle:[NSBundle mainBundle]];
vController.view.frame=CGRectMake(0, 90, 320, 370);
self.ConnectContentViewObject=vController;
[vController release];
}
[self.ConnectContentViewObject viewWillAppear:YES];
[self.view addSubview:[self.ConnectContentViewObject view]];
[self BringSubviewsToFront];
}
-(IBAction)ShowDealsView
{
if(ButtonDeals.selected==YES)
[ButtonDeals setSelected:YES];
else
{
[ButtonDeals setSelected:YES];
[ButtonFreebies setSelected:NO];
[self.FreebiesViewMainObject.view removeFromSuperview];
[ButtonDashBoard setSelected:NO];
[self.DashBoardContentView.view removeFromSuperview];
[ButtonConnect setSelected:NO];
[self.ConnectContentViewObject.view removeFromSuperview];
}
if(DealsViewMainObject==nil)
{
DealsViewMain *vController =[[DealsViewMain alloc] initWithNibName:@"DealsViewMain" bundle:[NSBundle mainBundle]];
vController.view.frame=CGRectMake(0, 90, 320, 370);
self.DealsViewMainObject=vController;
[vController release];
}
[self.DealsViewMainObject viewWillAppear:YES];
[self.view addSubview:[self.DealsViewMainObject view]];
[self BringSubviewsToFront];
}
-(IBAction)ShowFreebiesView
{
if(ButtonFreebies.selected==YES)
[ButtonFreebies setSelected:YES];
else
{
[ButtonFreebies setSelected:YES];
[ButtonDeals setSelected:NO];
[self.DealsViewMainObject.view removeFromSuperview];
[ButtonDashBoard setSelected:NO];
[self.DashBoardContentView.view removeFromSuperview];
[ButtonConnect setSelected:NO];
[self.ConnectContentViewObject.view removeFromSuperview];
}
if(FreebiesViewMainObject==nil)
{
FreebiesViewMain *vController =[[FreebiesViewMain alloc] initWithNibName:@"FreebiesViewMain" bundle:[NSBundle mainBundle]];
vController.view.frame=CGRectMake(0, 90, 320, 370);
self.FreebiesViewMainObject=vController;
[vController release];
}
[self.FreebiesViewMainObject viewWillAppear:YES];
[self.view addSubview:[self.FreebiesViewMainObject view]];
[self BringSubviewsToFront];
}
-(void)BringSubviewsToFront
{
[self.view bringSubviewToFront:HeaderView];
[self.view bringSubviewToFront:ButtonDeals];
[self.view bringSubviewToFront:ButtonDashBoard];
[self.view bringSubviewToFront:ButtonConnect];
[self.view bringSubviewToFront:ButtonFreebies];
}
现在 DealsViewMainObject 包含一个表格视图,我需要从这里进一步导航。同时从超级视图中删除视图如何像 popviewcontroller 动画一样进行动画处理? 顺便说一句,感谢 Felixyz 的回答。
【问题讨论】:
标签: objective-c iphone-sdk-3.0 uiviewcontroller core-animation