UINavigation重新加载controllerr怎么判断重新回到根视图

&&国之画&&&& &&&&&&
&& &&&&&&&&&&&&&&&&&&
鲁ICP备号-4
打开技术之扣,分享程序人生!IOS&UINavigationController&自定义返回按钮
此文转载于网友
快乐生活,快乐工作&http://zgia.net/?tag=backbarbuttonitem
backBarButtonItem
十一152011
A视图进入B视图,如下,self指的A,bView指的B。
[self.navigationController pushViewController:self.bView animated:YES];
一开始想当然的,在B视图的viewDidLoad里直接使用:
self.navigationItem.backBarButtonItem.title = @"back";
来更改后退按钮标题,结果后退后,发现A视图的导航栏标题也变成“back”了。
于是网上搜了一下,别人推荐在B视图的viewDidLoad/viewWillAppear里使用:
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:nil action:nil];
[self.navigationItem setBackBarButtonItem:backItem];
[backItem release];
我试了,发现无效。
无奈之下,只好研读UINavigationController
Class Reference去,在“Updating the Navigation
Bar”小节,有这么一段话:
我大致解释一下,使用pushViewController切换到下一个视图时,navigation
controller按照以下3条顺序更改导航栏的左侧按钮。
1、如果B视图有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮;
2、如果B没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项;
3、如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是A视图的标题。
按照这个解释,我把UIBarButtonItem
*backItem……这段代码放在A视图的pushViewController语句之前。
OK问题解决了,B视图的后退按钮的标题变成back了。
UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:nil action:nil];
[self.navigationItem setBackBarButtonItem:backItem];
[backItem release];
[self.navigationController pushViewController:self.bView animated:YES];
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
观乎其上,得乎其中,
观乎其中,得乎其下。
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
UINavigationController返回总结:1、弹出当前视图控制器(弹出并向左显示前一个视图)[html]&2、弹出到指定视图控制器(回到指定视图控制器,
也就是不只弹出一个) [html]&3、弹出到根视图控制器(
比如说你有一个“Home”键,也许就会实施这个方法了) [html]&具体应用如下:假设我的一个navigationController里共有4个viewcontroller,要是在每层ViewController返回上一层ViewController,有一个很简单方法:[html]&当然,要想直接返回到根viewcontroller也有现成的方法:[html]&不过想要从第5层直接返回到第2层或第3层,则没有现成的方法可以调用了。但这时若能够知道pop回去的ViewController的指针,也就好办了。具体写法如下:[html]&在使用时,根据自己返回层的需要,只要改变一下“-2”这个数字就可以达到目的了。
阅读(5149)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'UINavigationController 返回的方法汇总',
blogAbstract:'[html]&',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:3,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'观乎其上,得乎其中,\n观乎其中,得乎其下。',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}

我要回帖

更多关于 犀牛回到四个视图 的文章

 

随机推荐