首先我们看一下它的view层级图:
最后效果如下图:
uitabbarcontroller的代理方法以及模态显示
首先要实现协议<uitabbarcontrollerdelegate>
// 控制哪些viewcontroller的标签栏能被点击
- (bool)tabbarcontroller:(uitabbarcontroller *)tabbarcontrollershouldselectviewcontroller:(uiviewcontroller *)viewcontroller{
// 代表hmt_cviewcontroller这个view无法显示,无法点击到它代表的标签栏
if ([viewcontrolleriskindofclass:[hmt_cviewcontrollerclass]]) {
returnno;
}
returnyes;
}
// 选中哪个标签栏,一个监控作用吧
- (void)tabbarcontroller:(uitabbarcontroller *)tabbarcontrollerdidselectviewcontroller:(uiviewcontroller *)viewcontroller{
}
// more view controller将要开始编辑
- (void)tabbarcontroller:(uitabbarcontroller *)tabbarcontrollerwillbegincustomizingviewcontrollers:(nsarray *)viewcontrollers{
}
// more view controller将要结束编辑
- (void)tabbarcontroller:(uitabbarcontroller *)tabbarcontrollerwillendcustomizingviewcontrollers:(nsarray *)viewcontrollers changed:(bool)changed{
}
// more view controller编辑
- (void)tabbarcontroller:(uitabbarcontroller *)tabbarcontrollerdidendcustomizingviewcontrollers:(nsarray *)viewcontrollers changed:(bool)changed{
}
#import "hmt-aviewcontroller.h"
#import "hmtmodalshowviewcontroller.h"
@interfacehmt_aviewcontroller ()
@end
@implementation hmt_aviewcontroller
- (void)viewdidload
{
[superviewdidload];
self.view.backgroundcolor = [uicolorredcolor];
// 创建一个按钮
uibutton * button = [uibutton buttonwithtype:uibuttontypedetaildisclosure];
button.frame =cgrectmake(100,100,100, 100);
[button addtarget:self action:@selector(modalshow)forcontrolevents:uicontroleventtouchupinside];
[self.view addsubview:button];
// do any additional setup after loading the view.
}
- (void)modalshow{
hmtmodalshowviewcontroller * modalshowvc = [[hmtmodalshowviewcontroller alloc]init];
//模态视图控制器呈现出来时候的视觉效果
modalshowvc.modaltransitionstyle =uimodaltransitionstylecrossdissolve;
/*
uimodaltransitionstylecoververtical = 0, //默认,由下往上
uimodaltransitionstylefliphorizontal, //水平转动效果
uimodaltransitionstylecrossdissolve, //渐变效果
uimodaltransitionstylepartialcurl, //书页往上翻动效果
*/
//模态视图控制器呈现方式,默认全屏
modalshowvc.modalpresentationstyle =uimodalpresentationfullscreen;
/*
uimodalpresentationfullscreen = 0,
uimodalpresentationpagesheet,
uimodalpresentationformsheet,
uimodalpresentationcurrentcontext,
uimodalpresentationcustom,
uimodalpresentationnone = -1,
*/
uinavigationcontroller * modalshownc = [[uinavigationcontroller alloc] initwithrootviewcontroller:modalshowvc];
//推出模态视图控制器
[self presentviewcontroller:modalshownc animated:yes completion:^{
nslog(@"hello world");
}];
}
#import "hmtmodalshowviewcontroller.h"
@interfacehmtmodalshowviewcontroller ()
@end
@implementation hmtmodalshowviewcontroller
- (void)viewdidload
{
[superviewdidload];
// do any additional setup after loading the view.
self.view.backgroundcolor = [uicolor yellowcolor];
// 利用uinavigationcontroller来实现退出控制器
uibarbuttonitem * barbutton = [[uibarbuttonitem alloc] initwithbarbuttonsystemitem:uibarbuttonsystemitemadd target:self action:@selector(modaldismiss)];
self.navigationitem.leftbarbuttonitem = barbutton;
self.navigationitem.title ";
//创建一个按钮来实现退出控制器
/* uibutton * button = [uibutton buttonwithtype:uibuttontypedetaildisclosure];
button.frame = cgrectmake(100, 100, 100, 100);
[button addtarget:self action:@selector(modaldismiss) forcontrolevents:uicontroleventtouchupinside];
[self.view addsubview:button];*/
}
- (void)modaldismiss{
//退出模态视图控制器
[self dismissviewcontrolleranimated:yes completion:^{
nslog(@"退出goodbye");
}];
}
@end
如对本文有疑问, 点击进行留言回复!!
Codeforces Round #657 (Div. 2) C题
hdu2222 Keywords Search(ac自动机模板-kuangbin)
网友评论