Heim > Web-Frontend > HTML-Tutorial > UI开发UINavigationController和页面间传值_html/css_WEB-ITnose

UI开发UINavigationController和页面间传值_html/css_WEB-ITnose

WBOY
Freigeben: 2016-06-24 11:45:51
Original
1222 Leute haben es durchsucht

  //  Created By 郭仔  2015年04月21日22:52:59

// ===================================================

人生最痛苦的事情莫过于该交房租了!!!!!!!

// ===================================================

UINavigationController:

导航控制器,是iOS中最常?用的多视图控制器
之?一,它?用来管理多个视图控制器。
导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的
控制器。

UINavigationController继承于UIViewController,以栈的?方式管理所
控制的视图控制器,?至少要有?一个被管理的视图控制器,这个控制器
我们称作,导航控制器的根视图控制器。
任何继承?自UIViewController的类(多态)都可以作为根控制器。

// =========

工作原理:

UINavigationController通过栈的?方式管理控制器的切换,控制?入栈和出栈
来展?示各个视图控制器。 UINavigationController的ContentView?里始终显?示栈顶控制器的view。
viewControllers属性存储了栈中的所有被管理的控制器
navigationController属性,?父类中的属性,每个在栈中的控制器,都能通 过此属性,获取?自?己所在的UINavigationController对象。

实现页面间的跳转:

pushViewController:animated //进?入下?一个视图控制器 
Nach dem Login kopieren
popViewControllerAnimated: //返回上?一个视图控制器 
Nach dem Login kopieren
popToViewController:animated //返回到指定的视图控制器 
Nach dem Login kopieren
popToRootViewControllerAnimated //返回到根视图控制器
Nach dem Login kopieren
常用属性:

viewControllers //所有处于栈中的控制器 
Nach dem Login kopieren
topViewController //位于栈顶的控制器 
Nach dem Login kopieren
visibleViewController //当前正在显?示的控制器 
Nach dem Login kopieren
navigationBar //导航条
Nach dem Login kopieren
// =====================

向下跳:

    SecondViewController * secondVC = [[SecondViewController alloc]init];    [self.navigationController pushViewController:secondVC animated:YES];
Nach dem Login kopieren
向上跳:

   // [self.navigationController popViewControllerAnimated:YES];   // [self.navigationController popToRootViewControllerAnimated:YES];    SecondViewController * secondVC = [self.navigationController.viewControllers objectAtIndex:0];    [self.navigationController popToViewController:secondVC animated:YES];
Nach dem Login kopieren

UINavigationBar:

navigationBar?导航条,iOS7之后默认是透明的,iOS7之前默认是不
透明的。 navigationBar在透明情况,与contentView会重合?一部分区域。
navigationBar在不透明情况,contentView跟在navigationBar的下?面。 navigationBar竖屏下默认?高度44,横屏下默认?高度32.

UINavigationBar除了能定义?自?身的样式外,还管理?一组
UINavigationItem。 与UINavigationController相似,UINavigationBar也是以栈的?方式管
理?一组UINavigationItem。提供push和pop操作item。
每个视图控制器都有?一个navigationItem属性。navigationItem中设 置的左按钮、右按钮、标题等,会随着控制器的显?示,也显?示到 navigationBar上;

//====================

UINavigationItem:

UINavigationItem属于MVC中的M。封装了要显?示在UINavigationBar上
的数据。

UIBarButtonItem属于MVC的M。定义了UINavigationItem上按钮的触
发事件,外观等
-initWithBarButtonSystemItem:target:action:
-initWithTitle:style:target:action: -initWithImage:style:target:action: tintColor;

// =================

    RootViewController * rootVC = [[RootViewController alloc]init];    UINavigationController * nvc = [[UINavigationController alloc]initWithRootViewController:rootVC];   // nvc.navigationBar.backgroundColor = [UIColor redColor];    // nvc.navigationBar.tintColor = [UIColor redColor];    nvc.navigationBar.translucent = YES;    nvc.navigationBar.barStyle = UIBarStyleBlack;    UIImage * image = [UIImage imageNamed:@"bd_logo1.png"];    [nvc.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
Nach dem Login kopieren
// ========

UIView * view = [[UIView alloc]init];    view.frame = CGRectMake(0, 200, 20, 20);    view.backgroundColor  = [UIColor brownColor];    self.navigationItem.title = @"郭仔";    self.navigationItem.titleView = view;    [view release];    UIBarButtonItem *btnItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemBookmarks target:self action:nil];    self.navigationItem.rightBarButtonItem = btnItem;    [btnItem release];        UIImage * img = [[UIImage imageNamed:@"4.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];    UIBarButtonItem * leftImage = [[UIBarButtonItem alloc]initWithImage:img style:UIBarButtonItemStyleBordered target:self action:nil];    self.navigationItem.leftBarButtonItem = leftImage;    
Nach dem Login kopieren
// ===========

页面传值:

一种是属性传值;

一种是代理传值;

/*

属性传值:如果从A页面往B页面传值,在B页面中声明属性,在A页面中跳转事件中给B页面的属性赋值;
从后一个页面返回前一个页面不会执行前面页面的loadView和viewDidLoad方法,而是执行viewWillAppear方法,因为,loadView和viewDidLoad方法的作用是将视图加载到内存,而从后一个页面返回时,前一个页面已经加载到内存,所以不用再次加载,所以不执行loadView和ViewDidLoad方法;

*/

代理传值:

和代理设计模式一样,按照设置代理,遵循协议的那四步来就行,这里有介绍:


// =======================================

一天中最享受的时光便是晚上在高速路上骑行,Hello 京藏高速~~~~~~~~~





Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage