iOS UI07_导航视图控制器

//
//  MainViewController.m
//  UI07_导航视图控制器
//
//  Created by dllo on 15/8/6.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "MainViewController.h"
#import "SecondViewController.h"
@interface MainViewController ()

@property(nonatomic,retain)UITextField *textfield;

@end

@implementation MainViewController
-(void)dealloc
{
    [_textfield release];
    [super dealloc];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor=[UIColor cyanColor];
    //导航视图控制器高度44,上面的状态栏是20,加在一起默认是64
    UIButton *button=[UIButton buttonWithType:UIButtonTypeSystem];
    button.frame=CGRectMake(200, 100, 100, 40);
    [button setTitle:@"下一页" forState:UIControlStateNormal];
    button.layer.borderWidth=1;
    button.layer.cornerRadius=10;
    [self.view addSubview:button];
    [button addTarget:self action:@selector(click:) forControlEvents:
     UIControlEventTouchUpInside];
    //对导航视图控制器进行设置
    //加上一个标题
//    self.title [email protected]"猫眼电影";
    //外观设置
    //背景颜色,不是全部的背景颜色都是backgroundColor
//    self.navigationController.navigationBar.barTintColor=[UIColor greenColor];
    //创建一个UIview
    UIView *view =[[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    view.backgroundColor=[UIColor blackColor];
    [self.view addSubview:view];
    [view release];
    //为了防止坐标系被篡改,我们把bar从半透明设置成不透明,这样坐标系的原点会自己主动向下推64
    self.navigationController.navigationBar.translucent=NO;
    //设置里面的内容
    //标题设置
    self.navigationItem.title[email protected]"鹰王电影";
    //指定一些视图,称为titleView
    UISegmentedControl *seg=[[UISegmentedControl alloc] initWithItems:@[@"信息",@"通话"]];
    self.navigationItem.titleView=seg;
    //创建左右两边的按钮
    self.navigationItem.leftBarButtonItem=[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(leftButtonAction:)] autorelease];
//    self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc]initWithImage:[UIImage imageNamed:@"天平.png"] style:UIBarButtonItemStylePlain target:self action:@selector(right:)];

    //创建一个小button
    UIButton *rightButton=[UIButton buttonWithType:UIButtonTypeCustom];
    rightButton.frame=CGRectMake(0, 0, 40, 40);
    [rightButton setImage:[UIImage imageNamed:@"天平.png"] forState:UIControlStateNormal];
    self.navigationItem.rightBarButtonItem=[[UIBarButtonItem alloc] initWithCustomView:rightButton];

    self.textfield=[[UITextField alloc] initWithFrame:CGRectMake(100, 200, 100, 40)];
    self.textfield.layer.borderWidth=1;
    self.textfield.layer.cornerRadius=10;
    [self.view addSubview:self.textfield];
    [self.textfield release];

}
-(void)leftButtonAction:(UIBarButtonItem *)button
{

}
-(void)right:(UIBarButtonItem *)button
{

}

-(void)click:(UIButton *)button
{
//    //用模态跳转下一页
//    SecondViewController *secondVC=[[SecondViewController alloc] init];
//    [secondVC setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];
//    [self presentViewController:secondVC animated:YES completion:^{
//
//    }];
    //用导航视图控制器Navigation进行跳转
    //先创建下一页对象
    SecondViewController *secVC=[[SecondViewController alloc] init];
    //属性传值第二步
    secVC.number=100;

    secVC.str=self.textfield.text;

    secVC.arr[email protected][@"杨林",@"刘山山"];
    //
    [self.navigationController pushViewController:secVC animated:YES];
    //内存管理
    [secVC 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
//  UI07_导航视图控制器
//
//  Created by dllo on 15/8/6.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import <UIKit/UIKit.h>
@interface SecondViewController : UIViewController
//属性传值第一步,在第二个页面写一条属性
@property(nonatomic,assign)NSInteger number;
//针对字符串写一条属性
@property(nonatomic,copy)NSString *str;

@property(nonatomic,retain)NSArray *arr;

@end
//
//  SecondViewController.m
//  UI07_导航视图控制器
//
//  Created by dllo on 15/8/6.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "SecondViewController.h"
#import "ThirdViewController.h"
@interface SecondViewController ()
@property(nonatomic,retain)UILabel *label;
@end

@implementation SecondViewController
-(void)dealloc
{
    [_label release];
    [super dealloc];
    [_arr release];
    [_str release];
}
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor=[UIColor orangeColor];
    UIButton *button=[UIButton buttonWithType:UIButtonTypeSystem];
    button.frame=CGRectMake(200, 100, 100, 40);
    [button setTitle:@"下一页" forState:UIControlStateNormal];
    button.layer.borderWidth=1;
    button.layer.cornerRadius=10;
    [self.view addSubview:button];
    [button addTarget:self action:@selector(click:) forControlEvents:
     UIControlEventTouchUpInside];

    NSLog(@"%ld",self.number);

    self.label=[[UILabel alloc] initWithFrame:CGRectMake(100, 100, 50, 40)];
    self.label.backgroundColor=[UIColor redColor];
    [self.view addSubview:self.label];
    [self.label release];

    self.label.text=self.str;

    NSLog(@"%@",self.arr[0]);

}

-(void)click:(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.m
//  UI07_导航视图控制器
//
//  Created by dllo on 15/8/6.
//  Copyright (c) 2015年 zhozhicheng. All rights reserved.
//

#import "ThirdViewController.h"

@interface ThirdViewController ()

@end

@implementation ThirdViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor=[UIColor yellowColor];
    UIButton *button=[UIButton buttonWithType:UIButtonTypeSystem];
    button.frame=CGRectMake(200, 100, 100, 40);
    [button setTitle:@"返回" forState:UIControlStateNormal];
    button.layer.borderWidth=1;
    button.layer.cornerRadius=10;
    [self.view addSubview:button];
    [button addTarget:self action:@selector(click:) forControlEvents:
     UIControlEventTouchUpInside];

}
-(void)click:(UIButton *)button
{
    //从后往前跳
    [self.navigationController popToRootViewControllerAnimated:YES ];
    //跳到上一页
//    [self.navigationController popViewControllerAnimated:YES];
}

- (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
时间: 2025-01-18 17:37:50

iOS UI07_导航视图控制器的相关文章

Swift - iOS中各种视图控制器(View Controller)的介绍

在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息.下面对各个视图控制器做个总结: 1,标准视图控制器 - View Controller 这个控制器只是用来呈现内容.通常会用来作为子类,以向屏幕中添加逻辑. 2,导航控制器 - Navigation Controller 这个控制器呈现一个视图控制器的栈,应用程序可以在上面推入更多的视图控制器. 当新视图推入栈,或旧视图弹出栈时,导航控制器会以动画的形式(比如卷动)显示隐藏这些视图. 使用样例:系统“设置”应用程序 3,表

xcode6如何新建一个空项目+添加导航视图控制器

欢迎转载,请注明出处. 解说:使用xcode6的Empty项目模板创建出的项目啥都没有,及不方便.本编就先教大家如何创建一个包含有Target以及Appdelegate等目录的空项目以及添加导航视图控制器. 步骤1:打开xcode6,然后File - > New ->Project,打开后选择Single View Application模板,点击Next,输入项目名称,点击Next,选择保存位置,点击Create. 步骤2:选中项目名称,在配置栏中选择Info栏目,在Custom iOS T

UI 07 _ 导航视图控制器 与 属性传值

首先, 先创建三个VC. 完成点击按钮, 进入下一页, 并能够返回. 要先把导航视图控制器创建出来. 在AppDelegate.m 文件中代码如下: #import "AppDelegate.h" #import "MainViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (void)dealloc{ [_window release]; [super dea

导航视图控制器(总结)

导航视图控制器 : UINavigationController 继承于 UIViewController 注意:导航控制器高度是44,上面的状态栏高度是20,加在一起默认是64 效果图: 1.创建导航视图控制器 原代码: 在这之前要先建一个MainViewController的类 把MainViewController引入appDelegate.m的头文件 在appDelegate.m文件上创建导航视图控制器 // 先创建一个ViewController MainViewController

[转]iOS开发之视图控制器(UIViewController)

视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视图(它可以有子视图),其view属性指向它所管理的视图.UIViewController类可以有子类,可以使用一个系统的UIViewController子类或者直接自己创建一个UIViewController的子类. 使用代码创建控制器和视图. 开始创建一个基于窗口的Empty Applicatio

iOS开发中视图控制器ViewControllers之间的数据传递

iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storyboard中传递数据. 首先新建一个空工程,并添加一个根视图控制器类,如下图所示: # 在函数didFinishLunchingWithOption中添加几行代码,完成后如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 - (BOOL)application:(UIApplication

iOS学习之视图控制器

一.自定义视图(label-textField组合视图) 1.自定义视图:系统标准UI之外,自己组合出的新的视图. 2.优点:iOS提供了很多UI组件,借助它们我们可以实现不同的功能.尽管如此,实际开发中,我们还需自定义视图.积累自己的代码库,方便开发.自己封装的视图,能像UI空间一样,用于别的项目中,能大大降低开发成本,提高开发效率. 3.高质量代码的特点:可复用,可移植,精炼等.(高内聚,低耦合). 4.自定义视图步骤 根据需求的不同,自定义视图继承的类也有所不同.一般自定义的视图会继承于U

【iOS开发】视图控制器加载和卸载时的几个函数

1.-(void)loadView 你应该永远不要直接调用这个函数.当视图控制器的view属性被请求但是其值为nil时,该函数将会被调用.该函数加载或创建一个视图并把它分配给view属性. 如果视图控制器有一个与之相关联的nib文件,这个方法将会从nib文件中加载视图.当视图控制器的nibName属性的值不是nil时,就说明视图控制器有一个与之相关联的nib文件.如果你直接用initWithNibName:bundle:函数给视图控制器分配一个nib文件或者如果ios发现再应用程序中有一个以视图

Snail—UI学习之导航视图控制器UINavigationController(系统)

背景 有一个根视图控制器 然后跳转到第一个界面  第一个界面可以返回到根视图 也可以跳转到第二个视图 第二个视图可以直接返回到根视图 新建三个ViewController    RootViewController FirstViewController SecondViewController 首先在AppDelegate.m中写入 #import "WJJAppDelegate.h" #import "WJJRootViewController.h" @impl