(一)UITabBar and UINavigationController基础教程之切换页面


在之前我们已经通过一个plist文件创建了一个UITabBar and UINavigationController的基本页面的跳转

应用一个类轻松实现UITabBar and UINavigationController的界面跳转

http://blog.csdn.net/zhangyankan/article/details/12789587


现在就实现第一个切换页面的功能

    

切换页面的功能主要包括:1.能实现无限翻页功能

   2.能实现每页的背景颜色随机变化

   3.能通过UINavigationController的leftBarButtonItem返回前一页,首页或者指定页,

      并且返回页面的背景颜色和之前一致


现在就来说明一下具体的实现方法

在之前创建好的5个ViewController中的切换JFirstViewController.h中

#import <UIKit/UIKit.h>

#import "JBaseViewController.h"


@interface JFirstViewController : JBaseViewController<UIActionSheetDelegate>


@end


之所以继承JBaseViewController是因为后面会通过这个ViewController实现每个页面背景颜色的一起改变

然后后面那个代理是为了能实现页面的跳转


接下来在切换JFirstViewController.m中


#import "JFirstViewController.h"


@implementation JFirstViewController


-(void)next

{

    JFirstViewController *fvc = [[JFirstViewControlleralloc]init];

    [self.navigationControllerpushViewController:fvc animated:YES];

    [fvcrelease];

}


-(void)back

{

    //按下back会从屏幕底下弹出一个跳转窗口

    UIActionSheet *action = [[UIActionSheetalloc] initWithTitle:@"跳转到"delegate:selfcancelButtonTitle:@"取消"destructiveButtonTitle:@"上一层"otherButtonTitles:@"首层",@"第三层",nil];

    [action showFromTabBar:self.tabBarController.tabBar];

    [actionrelease];

}


-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

   switch (buttonIndex)

    {

        //利用三种跳转方法回到不同的页面

        case0://直接跳回上一页的方法

            [self.navigationControllerpopViewControllerAnimated:YES];

           break;

       case 1://跳回首页的方法

            [self.navigationControllerpopToRootViewControllerAnimated:YES];

           break;

       case 2://跳回指定页的方法

            [self.navigationControllerpopToViewController:[self.navigationController.viewControllersobjectAtIndex:2]animated:YES];

           break;

       default:

           break;

    }

}


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

   self = [superinitWithNibName:nibNameOrNil bundle:nibBundleOrNil];

    

    

    return self;

}


-(void)viewWillAppear:(BOOL)animated

{

    

    int count =self.navigationController.viewControllers.count;

   if (self) {

       if (count>1)

        {

            //navigationItemleftBarButtonItem实现back方法

            UIBarButtonItem *back = [[UIBarButtonItemalloc]initWithTitle:@"back"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(back)];

            self.navigationItem.leftBarButtonItem = back;

            [backrelease];

        }

        //navigationItemrightBarButtonItem实现翻页方法

       UIBarButtonItem *right = [[UIBarButtonItemalloc] initWithTitle:@"下一层" style:UIBarButtonItemStyleBordered target:self action:@selector(next)];

        

        self.navigationItem.rightBarButtonItem = right;

        [rightrelease];

    }

    //navigationItemtitle显示每一页的层

    self.navigationItem.title = [[NSStringalloc]initWithFormat:@" %d ",self.navigationController.viewControllers.count];

}


- (void)viewDidLoad

{

    [superviewDidLoad];

    //设置每页的随机背景颜色

   CGFloat r = arc4random() %255 / 255.0f;

   CGFloat g = arc4random() %255 / 255.0f;

   CGFloat b= arc4random() %255 / 255.0f;

    self.view.backgroundColor = [UIColorcolorWithRed:rgreen:g blue:b alpha:1];

}


@end


这样就可以实现页面无限跳转的方法了




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个基本的 iOS 应用程序中的 Tab Bar 代码示例,使用 Swift 语言编写: ``` import UIKit class ViewController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() let firstViewController = FirstViewController() firstViewController.title = "第一页" firstViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .favorites, tag: 0) let secondViewController = SecondViewController() secondViewController.title = "第二页" secondViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .contacts, tag: 1) let thirdViewController = ThirdViewController() thirdViewController.title = "第三页" thirdViewController.tabBarItem = UITabBarItem(tabBarSystemItem: .downloads, tag: 2) let tabBarList = [firstViewController, secondViewController, thirdViewController] viewControllers = tabBarList } } class FirstViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .red } } class SecondViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .blue } } class ThirdViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .green } } ``` 在这个示例中,我们创建了一个继承自 UITabBarController 的 ViewController。在 viewDidLoad 函数中,我们创建了三个视图控制器,分别代表三个选项卡页面,然后将它们添加到一个 viewControllers 数组中。每个视图控制器都设置了一个标题和一个系统提供的图标作为选项卡栏的标签。 在每个视图控制器类中,我们重写了 viewDidLoad 函数并设置了不同的背景颜色,以便在不同的选项卡页面中进行区分。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值