怎么样在模态视图上push进一个新视图
登录界面loginView是通过[selfpresentViewController:loginViewanimated:YEScompletion:NULL];从下往上...
登录界面loginView是通过
[self presentViewController:loginView animated:YES completion:NULL];从下往上进入,我想点击注册按钮之后,注册界面registerView通过 [self.navigationController pushViewController:registerView animated:YES]; 从右往左进入。
但是,好像模态视图属于临时视图,不在导航栈里面,所以没办法直接用
[self.navigationController pushViewController:vc animated:YES]; 。
请问,我应该怎么写才能实现上述效果呢?谢谢! 展开
[self presentViewController:loginView animated:YES completion:NULL];从下往上进入,我想点击注册按钮之后,注册界面registerView通过 [self.navigationController pushViewController:registerView animated:YES]; 从右往左进入。
但是,好像模态视图属于临时视图,不在导航栈里面,所以没办法直接用
[self.navigationController pushViewController:vc animated:YES]; 。
请问,我应该怎么写才能实现上述效果呢?谢谢! 展开
1个回答
推荐于2016-05-25 · 知道合伙人软件行家
关注
展开全部
1.可以使用导航控制器栈。将当前视图控制器作为rootViewController.需要在创建当前控制器的代码中这样来创建
UIViewController *vc1=[[UIViewControlelr alloc] init];
UINavigationController *navController =[[UINavigationController alloc] initWithRootViewController:vc1];
[vc1 release];
[window addSubView:navController.view];
[navController release];
只有当当前控制器在导航控制器栈中才可以使用pushViewController来导航其它视图
导航到新的视图控制器:
UIViewController *vc2=[[ViewController alloc] init];
[self.navigationController pushViewController:vc2 animated:YES];
[vc2 release];
2.模态视图
UIViewController *vc2=[[ViewController alloc] init];
[self presentModalViewController:controller animated:YES];
[vc2 release];
3.使用新的视图覆盖当前视图
如果使用这种方式,建议创建一个可维护控制器之间交互的控制器swithController,在这个控制器中来实现不同控制器之间的视图切换
@inertface SwitchViewController:UIViewController
@property(retain) UIViewController *vc1
@property (retain) UIViewController *vc2;
-(void)showVC1;
-(void)showVC2;
@end
@implementation SwitchViewController
@synthesize vc1,vc2;
-(void)showVC1 {
if (vc2) {
[vc2.view removeFromSuperView];
}
[self.view addSubView:vc1.view];
}
@end
UIViewController *vc1=[[UIViewControlelr alloc] init];
UINavigationController *navController =[[UINavigationController alloc] initWithRootViewController:vc1];
[vc1 release];
[window addSubView:navController.view];
[navController release];
只有当当前控制器在导航控制器栈中才可以使用pushViewController来导航其它视图
导航到新的视图控制器:
UIViewController *vc2=[[ViewController alloc] init];
[self.navigationController pushViewController:vc2 animated:YES];
[vc2 release];
2.模态视图
UIViewController *vc2=[[ViewController alloc] init];
[self presentModalViewController:controller animated:YES];
[vc2 release];
3.使用新的视图覆盖当前视图
如果使用这种方式,建议创建一个可维护控制器之间交互的控制器swithController,在这个控制器中来实现不同控制器之间的视图切换
@inertface SwitchViewController:UIViewController
@property(retain) UIViewController *vc1
@property (retain) UIViewController *vc2;
-(void)showVC1;
-(void)showVC2;
@end
@implementation SwitchViewController
@synthesize vc1,vc2;
-(void)showVC1 {
if (vc2) {
[vc2.view removeFromSuperView];
}
[self.view addSubView:vc1.view];
}
@end
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询