iOS viewController添加导航条以及返回跳转选择

给单独的viewcontroller或者在Appdelegate的主页面添加导航条,只要在viewcontroller上添加navigationcontroller,在添加此navigationcontroller即可

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

self.window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];

ViewController *mainView = [[ViewController alloc]init];

UINavigationController *navi = [[UINavigationController alloc]initWithRootViewController:mainView];

navi.navigationBar.backgroundColor = [UIColor blueColor];

[self.window setRootViewController:navi];

[self.window makeKeyAndVisible];

return YES;

}

导航条的字体和颜色的设置

self.navigationController.navigationBar.titleTextAttributes
=  [NSDictionary dictionaryWithObject:[UIColor whiteColor]
forKey:UITextAttributeTextColor]; // --- 字体颜色

[self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"BJ.png"] forBarMetrics:UIBarMetricsDefault]; // — 背景色

导航条跳转页面的考虑

对于用navigationcontroller来跳转页面的时候,其实是执行堆栈的进栈和出栈的操作,要想释放内存,那么在来回跳转的时候,就要考虑几个问题了

1 A =>B=>C=>D,
D=>A 有根视图的话 (HOME)
[self.navigationController popToRootViewControllerAnimated:YES]; 
D=>C  (每一个界面返回上一层)
[self.navigationController popViewControllerAnimated:YES]; 
返回到上一层,并且传递参数
CViewController *cvc = [CViewController alloc]init];
cvc.str = self.str;
[self.navigationController popToViewController:cvc animated:true];
返回到上一层后,上一页面显示后要接收参数,并刷新。注意此时应该在viewDidAppear中进行判断并接收传递的值
-(void)viewDidAppear:(BOOL)animated
{
  //判断并接收返回的参数
}

2  A =>B=>C=>D=>E,E=>B=>C=>E

因为B在之前已经出现过,不能在E中直接PUSH到B,因为那样已经是两个B了,增加内存,所以在跳转的时候,就要进行判断是否之前已经出现过B了,出现过,则直接push。这样push到的是原有的B,不会在内存中重新生成一个B了。

NSArray *array = self.navigationController.viewControllers;

for (UIViewController *vc in array) {

if ([vc isKindOfClass:[BXXXViewController class]]) {

push VC;

}

或者知道每个界面的指针

[self.navigationController

popToViewController: [self.navigationController.viewControllers

objectAtIndex: ([self.navigationController.viewControllers count] -4)]

animated:YES];

在使用时,根据自己返回层的需要,只要改变一下“-4”这个数字就可以达到目的了

时间: 2024-08-04 22:25:18

iOS viewController添加导航条以及返回跳转选择的相关文章

ios 设置所有 导航控制器 的返回按钮 自定义导航按钮

应用场景: 1.当导航控制器push很多次,每个自控制器都需要自定义返回按钮,很麻烦 2.当进入二级界面以后,需要隐藏底部的tabbar 3.一次性设置顶部导航条的颜色 解决方法: 自定义导航控制器,重写push(跳到下一个控制器) 和 pop(返回上一个控制器) 方法 代码: #import "SGNavigationController.h" @interface SGNavigationController () @end @implementation SGNavigation

iOS中的导航条(UISegmentedControl)的基本使用(界面中传值的3中方法)

Appdelegate中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; //1.创建单视图控制器对象, FirstViewControll

夺命雷公狗---DEDECMS----25dedecms导航条首页的跳转

我们的导航条首页一直没写跳转,现在我们看看dede自带模版的首页是怎么写的: 他也是封装了一个{dede:global.cfg_cmsurl/}/内置标签来实现的,那么我们来改下我们的head.htm.如下所示: 然后我们在后台全站更新下: 然后我们再进入前台,放鼠标上首页看下效果如何了: YES,我们成功了..

iphone ios 屏幕,导航条,状态栏的高度

1.app尺寸,去掉状态栏 CGRect r = [ UIScreen mainScreen ].applicationFrame; r=0,20,320,460 2.屏幕尺寸 CGRect rx = [ UIScreen mainScreen ].bounds; r=0,0,320,480 3.状态栏尺寸 CGRect rect; rect = [[UIApplication sharedApplication] statusBarFrame]; 当有导航条的时候,导航条的高度是44,那么整个

iOS 如何设置导航的滑动返回手势, 和系统饿一样

iOS 7 滑动返回那些事儿 2014/05/17 Wei .entry-meta .entry-header 在智能机越来越普及,屏幕越做越大的当下,滑动返回手势已经成为了一个应用的标配功能,甚至可以说,不能滑动返回是一种反人类的交互体验. 滑动返回现在大致有以下3种类型: 1 使用 UISwipeGestureRecognizer 实现,效果为用户在屏幕中向右轻扫手指,页面返回. 2 使用 UIPanGestureRecognizer 实现,效果为用户在屏幕中向右滑动手指,松开后页面返回.

为ios app添加广告条

1.广告简介 2.实现步骤: 1>.添加 iAd.framework 框架 2,使用storyboard 运行结果: 2>添加 ADBannerView 视图,并设置代理方法 3>思想:一开始红色view的底部约束广告条的最底部,遮住广告条. 让广告条加载完成之前隐藏. 加载完成之后,修改红色view的地步约束 4>导入头文件,遵守协议,代码如下

iOS ViewController添加Segue

有时候需要判断逻辑再弹出View,这样子的话就不能直接通过按钮的Segue来弹出,就需要添加代码来控制segue.此时segue的添加(那个箭头),需要在viewcontroller之间建立.需要注意的是!源viewcontroller需要在左侧栏右击!给segue添加好id,直接用这一句话可以搞定. [self performSegueWithIdentifier:@"segue_register2main" sender:self];

iOS之修改导航栏的返回按钮的文本

A -> B,大概有2种方法: 1)在push的时候,在A中添加代码: UIBarButtonItem *backItem = [[UIBarButtonItem alloc] init]; backItem.title = @"你的文字"; self.navigationItem.backBarButtonItem = backItem; 2)在B中添加代码: UIBarButtonItem *item = (UIBarButtonItem *)self.navigationC

---添加一条记录返回一条记录的ID

INSERT INTO Web_AD(PID,ADType,ADTitle,ADTitle1,ADTitle2,ADTarget,LinkURL,DispalyWords,ADCode,UploadImg,UploadImg2,ADStatus,IsDiscount,OnLineTime,OffLineTime,OrderBy,CreateLoginId)OUTPUT inserted.id VALUES(9,2,'好礼相送','好礼送不停','中秋好礼送送','_self','http://l