UINavigationController页面切换合基本设置  

新建的类和文件名

AppDelegate.h

#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end

AppDelegate.m

#import "AppDelegate.h"
#import "FirstViewController.h"
#import "SecondViewController.h"
#import "ThirdViewController.h"
#import "ForthViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    
    
    FirstViewController *firstVC = [[FirstViewController alloc]init];
    //导航视图控制器的使用 (UINavigationController)
    //创建的时候,要给他指定一个默认显示的viewController
    UINavigationController *naviVC = [[UINavigationController alloc] initWithRootViewController:firstVC];
    //把navigationController指定为window的根视图控制器
    self.window.rootViewController = naviVC;
    [firstVC release];
    
    
    
    [_window release];
    return YES;
}
- (void)dealloc
{
    [_window release];
    [super dealloc];
}
- (void)applicationWillResignActive:(UIApplication *)application
{
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 
    // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
    // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
}
- (void)applicationDidBecomeActive:(UIApplication *)application
{
    // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
- (void)applicationWillTerminate:(UIApplication *)application
{
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
@end

FirstViewController.h

#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController
@end

FirstViewController.m

#import "FirstViewController.h"
#import "SecondViewController.h"
@interface FirstViewController ()
@end
@implementation FirstViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    
    
    self.view.backgroundColor = [UIColor brownColor];
    self.view.alpha = 0.3;
    self.title = @"第一页面";
    
    
    //1.改变navigationBar的样式
    // 一个导航控制器只有一个navigationBar
    //导航栏是否有一个模糊效果(默认为YES)
    [self.navigationController.navigationBar setTranslucent:YES];
    //导航栏颜色
    //    [self.navigationController.navigationBar setBackgroundColor:[UIColor blueColor]];
    [self.navigationController.navigationBar setBarTintColor:[UIColor yellowColor]];
    //隐藏导航栏
    [self.navigationController setNavigationBarHidden:NO animated:YES];
    //navigationItem   作用:每个视图控制器要显示在导航栏上的内容
    //当导航控制器推出一个新的vc的时候,会读取这个属性的所有内容显示到导航栏上
    self.navigationItem.title = @"First";
    
    //设置左右两边的按钮
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemOrganize target:self action:@selector(buttonClicked:)];
    
    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"hehe" style:UIBarButtonItemStylePlain target:self action:@selector(buttonClicked:) ];
    
    //返回字体颜色
    [self.navigationController.navigationBar setTintColor:[UIColor redColor]];
    UIButton *botton = [[UIButton alloc] initWithFrame:CGRectMake(80, 100, 90, 30)];
    botton.backgroundColor = [UIColor cyanColor];
    [botton setTitle:@"下页面" forState:UIControlStateNormal];
    [botton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [botton setShowsTouchWhenHighlighted:YES];
    botton.layer.cornerRadius = 5;
    [botton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:botton];
    
    
    
}
- (void)buttonClicked:(UIButton *)button
{
    //利用navigetion推出新页面
    //1.创建一个新的viewController
    SecondViewController *secondVC = [[SecondViewController alloc] init];
    //2.把页面推出
    
    
    secondVC.name = button.currentTitle;
    //可以通过属性直接获取当前的viewController所在的导航控制器
    [self.navigationController pushViewController:secondVC  animated:YES];
    //3.内存管理
    [secondVC release];
    
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
@end

SecondViewController.h

#import <UIKit/UIKit.h>
@interface SecondViewController : UIViewController
@property (nonatomic, copy)NSString *name;
@end

SecondViewController.m

#import "SecondViewController.h"
#import "ThirdViewController.h"
@interface SecondViewController ()
@end
@implementation SecondViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor blueColor];
//    self.view.alpha = 0.3;
    
    self.title = @"第二页面";
    
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(110, 100, 90, 30)];
    [button setTitle:self.name forState:UIControlStateNormal];
    [button setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal];
    button.backgroundColor = [UIColor redColor];
    button.layer.cornerRadius = 5;
    [button addTarget:self action:@selector(buttonClikded:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    //
    UIImage *image = [UIImage imageNamed:@"4.png"];
    self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:NULL] autorelease];
    UISegmentedControl *segment = [[UISegmentedControl alloc] initWithItems:@[@"红茶", @"绿茶"]];
    self.navigationItem.titleView = segment;
    [segment release];
    
    [self.navigationController.navigationBar setTintColor:[UIColor blueColor]];
    
 }
- (void)buttonClikded:(UIButton *)button
{
    ThirdViewController *thirdVC = [[ThirdViewController alloc] init];
    [self.navigationController pushViewController:thirdVC animated:YES];
    [thirdVC release];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
@end

ThirdViewController.h

#import <UIKit/UIKit.h>
@interface ThirdViewController : UIViewController
@end

ThirdViewController.m

#import "ThirdViewController.h"
#import "ForthViewController.h"
@interface ThirdViewController ()
@end
@implementation ThirdViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor magentaColor];
    self.title = @"第三页";
    
    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(150, 100, 90, 30)];
    [button setTitle:@"下个页面" forState:UIControlStateNormal];
    button.backgroundColor = [UIColor cyanColor];
    button.layer.cornerRadius = 5;
    [button addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
    
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"3.png"] style:UIBarButtonItemStylePlain target:self action:NULL];
    
}
- (void)buttonClicked:(UIButton *)button
{
    ForthViewController *forthVC = [[ForthViewController alloc] init];
    [self.navigationController pushViewController:forthVC animated:YES];
    [forthVC release];
}
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
/*
#pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Get the new view controller using [segue destinationViewController].
    // Pass the selected object to the new view controller.
}
*/
@end

第四个页面和第三个页面相同

UINavigationController页面切换合基本设置

时间: 2024-10-17 19:22:25

UINavigationController页面切换合基本设置  的相关文章

UINavigationController详解二(转)页面切换和SegmentedController

原文出自:http://blog.csdn.net/totogo2010/article/details/7682433,非常感谢. 1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2.为Button 添加点击事件,实现跳转 在RootViewController.xib中和RootViewController.h文件建立连接 在RootViewController.m

iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2.为Button 添加点击事件,实现跳转 在RootViewController.xib中和RootViewController.h文件建立连接 在RootViewController.m中实现代码,alloc一个SecondViewController,用pushViewController到navigationCon

[转]iOS学习之UINavigationController详解与使用(二)页面切换和segmentedController

转载地址:http://blog.csdn.net/totogo2010/article/details/7682433 iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem是上篇,我们接着讲UINavigationController的重要作用,页面的管理和切换. 1.RootView 跳到SecondView 首先我们需要新一个View.新建SecondView,按住Command键然后按N,弹出新建页面,我们新建SecondView 2

Qt--多页面切换组件

一.多页面切换组件 多页面的切换在我们日常的软件使用中是十分广泛的,有着很好的便捷性,下面一张图片展示了多页面的使用的便捷性 可以看到用鼠标点击不同的标题时会出现不同的页面内容A.Qt中的多页面切换组件QTabWidgetQt中为多页面切换的实现提供了一个专门的类QTabWidget,,它可以实现能够在同一个窗口中自由切换不同页面的内容,并且是一个容器类型的组件,提供友好的页面切换方式,在QTabWidget类中提供了很多在工程中实用的函数,比如设置Tab标签的位置void? setTabPos

在uwp仿IOS的页面切换效果

有时候我们需要编写一些迎合IOS用户使用习惯的uwp应用,我在这里整理一下仿IOS页面切换效果的代码. 先分析IOS的页面切换.用户使用左右滑动方式进行前进和后退,播放类似于FlipView的切换动画.导航到新页面时,使用页面前进的动画. UWP自带很多切换效果,位于 Windows.UI.Xaml.Media.Animation 中.与苹果的切换效果最接近的是 PaneThemeTransition (而不是EdgeUIThemeTransition). PaneThemeTransition

Android使用Fragment打造万能页面切换框架

首先我们来回忆一下传统用Activity进行的页面切换,activity之间切换,首先需要新建intent对象,给该对象设置一些必须的参数,然后调用startActivity方法进行页面跳转.如果需要activity返回结果,则调用startActivityForResult方法,在onActivityResult方法中获得返回结果.此外,每一个要展示的activity需要在AndroidManifest.xml文件中注册.而且,如果在某些特定的情况下(比如65536方法数爆炸)要动态加载dex

利用pushState开发无刷页面切换

利用pushState开发无刷页面切换<转> 相关文档:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulatingthebrowser_history 实现目标 页面的跳转(前进后退,点击等)不重新请求页面 页面URL与页面展现内容一致(符合人们对传统网页的认识) 在不支持的浏览器下降级成传统网页的方式 使用到的API history.state 当前URL下对应的状态信息.如果当前URL不是通过pushSta

用Fragment实现Tab页面切换效果初步总结

前言: 最近在Android项目中需要在活动中实现多页面切换的功能,第一次是实现的过程中,是让Activity同时去加载三个界面的,通过点击tab按钮对页面设置隐藏和显示,实现页面切换效果,但是后面发现这种实现方式其实存在很多问题: 首先,同时去加载三个页面,切换Activity的速度会变慢,尤其是布局中如果有很多ImageView,ImageButton等使用到图片资源的控件时,切换效果非常不好: 其次,由于使用了很多图片资源,在退出Activity的时候,像Drawable,Bitmap等一

activity切换动画和页面切换动画

Activity切换动画 要实现Activity切换动画需要靠overridePendingTransition来实现,里面有两个参数分别是进入Activity时的动画和离开Activity时的动画. 需要注意的是必须在StartActivity()或finish()之后立即调用 比如在MainActivity中有一个Button,点击Button后跳转到OtherActivity中代码如下: Intent intent = new Intent(this, OtherActivity.clas