创建一个多页面,基于UINavigationController的控制的跳转的iOS应用程序

从android转到iOS上开发,刚开始很不习惯,总是喜欢用android的想法来用iOS上的控件,结果是到处碰壁,并且是一直碰,现在闲着没事就写点刚开始的一些简单程序,加深下对iOS开发的认识。

1.首先创建一个空的iOS工程(我默认使用了arc机制,所以后面的代码中不会出现释放的代码);工程目录如下

2.修改VSAppDelegate.h,添加一个UINavigationController类型的属性naviController,然后在VSAppDelegate.c中添加上属性的get/set方法的声明,在这个例子中我们只修改用

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 方法,其它的方法你可以手动删除掉,用的时候再添加就可以了,下面修改这个方法,将naviController添加到程序中,在这之前你需要先创建一个程序启动时的画面,在这个例子中是VSLoginViewController,原因是在初始化naviController的时候需要用一个ViewController来作为RootViewController,具体实现的代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    VSLoginViewController *loginView = [[VSLoginViewController alloc]initWithNibName:@"VSLoginViewController" bundle:nil];
    self.naviController = [[UINavigationController alloc]initWithRootViewController:loginView];
    self.window.rootViewController = self.naviController;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

  启动后的画面如下:

也许你会很奇怪,为什么你的程序会带有一个导航条呢,而我的这个怎么没有的呢,原因很简单,我是在VSLoginViewController的(void) viewWillAppear:(BOOL)animated方法中将导航条隐藏掉了,代码如下:

-(void) viewWillAppear:(BOOL)animated
{
    [self.navigationController setNavigationBarHidden:YES animated:YES];
    [super viewWillAppear:animated];
}

在做跳转逻辑之前,我们还要做一个设置,就是设置下一个页面中导航条的回退按钮的标题,是的,下一个页面的回退按钮的标题是在本页面设置的,这里有2种方法:1.设置本画面的title属性;2.修改下一个页面的导航条的回退按钮,这个的设置是在ViewController的init方法中实现的,代码如下:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        UIBarButtonItem *backItem=[[UIBarButtonItem alloc]init];
        backItem.title=@"注销";
        self.navigationItem.backBarButtonItem = backItem;
//        self.title = @"注销";
    }
    return self;
}

3.下面来实现页面的跳转逻辑,首先在VSLoginViewController.h中声明一个方法login,然后将这个方法绑定到xib的按钮上,然后实现login方法,代码如下:

-(void) login:(id)sender
{
    VSMainViewController *mainViewController = [[VSMainViewController alloc]initWithNibName:@"VSMainViewController" bundle:nil];
    [self.navigationController pushViewController:mainViewController animated:YES];
}

设置完成后点击这个按钮就会跳转到下一个页面了:

导航条有显示回来了,这也是在viewWillAppear方法中设置的,如果不设置则默认是沿用上一个的导航条设置。

转载于:https://www.cnblogs.com/janken/archive/2012/06/06/2538592.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值