视图控制器之导航控制器

5,使用视图控制器
5.1--使用导航控制器
UINavigationController类凭借数量最少的特定于导航的编程,提供了所有基于UINavigationBar的界面的精华。UINavigationController让用户使用内置的动画在不同的界面之间切换。并且提供免费的历史记录控制,无需编写程序,导航控制器自动处理back按钮的功能。
导航控制器还提供了一个简单的菜单栏,你可以想栏中添加按钮或者更复杂的控件,将操作构建到你的程序中。
5.1.1:设置导航控制器。
每一个导航控制器都拥有一个根视图控制器。这个控制器构成了栈的基础,你可以用编程的方式将其他控制器推入栈。这将扩展导航浏览器路径记录。并且每一次推入新的视图控制器时,自动构建一个back按钮。
在applicationDidFinishLaunching:方法中构建导航器并初始化它的根。
5.1.2:推入和弹出视图控制器、
1,在self.navigationController调用pushViewController:animated。
2,改变navigationBar的风格和颜色。
3,设置self.navigationController的导航项。
5。1。3:导航项类
UINavigationIterm是一个抽象类,导航项的属性包括,左右栏按钮,标题视图,back按钮。你可以在这3个位置放置自定义控件,也可以使用搜索字段,分层控件,工具栏,图片等构建导航栏。
5。1。4:模态演示。
presentModalViewController:animated
dismissModalViewControllerAnimated:

------------------------------------------------------------------------------------------
5。2:宏/函数组合
宏。为了简化程序的书写,提高可读性,可移植性,宏分为有参和无参两种。宏的作用域从定义的位置到文件结尾 ,但是可以提前终止。宏也可以嵌套定义。即医用已定义的宏定义新的宏。
不带参数的宏: #define 标示符 字符串表达式
例子
例如我在这里定义了一个宏COOKBOOK_PURPLE_COLOR
#define COOKBOOK_PURPLE_COLOR [UIColor colorWithRed:0.20392f green:0.19607f blue:0.61176f alpha:1.0f]
我在该宏的作用范围之内可以这样使用它
self.navigationController.navigationBar.tintColor = COOKBOOK_PURPLE_COLOR;

又如:
#define showAlert(format, ...) myShowAlert(__LINE__, (char *)__FUNCTION__, format, ##__VA_ARGS__)

// Simple Alert Utility
void myShowAlert(int line, char *functname, id formatstring,...)
{
va_list arglist;
if (!formatstring) return;
va_start(arglist, formatstring);
id outstring = [[[NSString alloc] initWithFormat:formatstring arguments:arglist] autorelease];
va_end(arglist);

NSString *filename = [[NSString stringWithCString:__FILE__ encoding:NSUTF8StringEncoding] lastPathComponent];
NSString *debugInfo = [NSString stringWithFormat:@"%@:%d\n%s", filename, line, functname];

UIAlertView *av = [[[UIAlertView alloc] initWithTitle:outstring message:debugInfo delegate:nil cancelButtonTitle:@"OK"otherButtonTitles:nil] autorelease];
[av show];
}
这样使用
showAlert(@"You pressed the right button");

5。3:练习构建一个简单的双向菜单
联系目的:宏的使用。导航控制器的使用。

posted on 2012-05-14 13:09  生于凛冽,葬于北邙  阅读(308)  评论(0编辑  收藏  举报

导航