ios开发:怎么实现点击一个按钮,跳转到一个新的界面,急阿,求救~~~
我是ios开发新手,现在需要做一项功能,点击一个按钮,然后会跳转到一个新的界面,很急,求高手指点!...
我是ios开发新手,现在需要做一项功能,点击一个按钮,然后会跳转到一个新的界面,很急,求高手指点!
展开
5个回答
展开全部
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
展开全部
一种就是对View的操作,把直接的View移除掉,一种就是让本身的ViewController的根视图为UINavigationController依托,然后push进去,返回时在pop出来
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你需要详细了解一下UINavigationController,它可以进行页面的管理和切换。
使用
[self.navigationController pushViewController:viewController animated:YES];
方法
还有其它的方法:
1、利用模态视图
ViewController *controller = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[self presentModalViewController:controller animated:YES];
[controller release];
2、在同一个ViewController下添加新的视图
[self.view addSubviewToFront:View];
使用
[self.navigationController pushViewController:viewController animated:YES];
方法
还有其它的方法:
1、利用模态视图
ViewController *controller = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
[self presentModalViewController:controller animated:YES];
[controller release];
2、在同一个ViewController下添加新的视图
[self.view addSubviewToFront:View];
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ios和android不一样,只需要在将你需要的Controller加载进来可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2017-07-12 · 知道合伙人软件行家
关注
展开全部
iOS三种视图切换的原理各不相同:
UITabBarController:以平行的方式管理视图,各个视图之间往往关系并不大,每个加入到UITabBarController的视图都会进行初始化即使当前不显示在界面上,相对比较占用内存。
UINavigationController:以栈的方式管理视图,各个视图的切换就是压栈和出栈操作,出栈后的视图会立即销毁。
UIModalController:以模态窗口的形式管理视图,当前视图关闭前其他视图上的内容无法操作。
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];
退出参考WFCoreText
[self dismissViewControllerAnimated:YES completion:NULL];
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
UITabBarController:以平行的方式管理视图,各个视图之间往往关系并不大,每个加入到UITabBarController的视图都会进行初始化即使当前不显示在界面上,相对比较占用内存。
UINavigationController:以栈的方式管理视图,各个视图的切换就是压栈和出栈操作,出栈后的视图会立即销毁。
UIModalController:以模态窗口的形式管理视图,当前视图关闭前其他视图上的内容无法操作。
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];
退出参考WFCoreText
[self dismissViewControllerAnimated:YES completion:NULL];
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询