【发布时间】:2013-01-27 07:30:57
【问题描述】:
所以我有一个模态视图,并希望以编程方式添加一个带有完成按钮的 UINavigationBar,以便在用户完成阅读内容时关闭此视图。
关于如何做到这一点以及是否可以完全不使用界面构建器的任何想法?
【问题讨论】:
标签: objective-c xcode uinavigationbar modalviewcontroller
所以我有一个模态视图,并希望以编程方式添加一个带有完成按钮的 UINavigationBar,以便在用户完成阅读内容时关闭此视图。
关于如何做到这一点以及是否可以完全不使用界面构建器的任何想法?
【问题讨论】:
标签: objective-c xcode uinavigationbar modalviewcontroller
很抱歉,这里没有人真正阅读您的问题...这是您要查找的代码:
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
navBar.backgroundColor = [UIColor whiteColor];
UINavigationItem *navItem = [[UINavigationItem alloc] init];
navItem.title = @"Navigation Bar title here";
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"Left" style:UIBarButtonItemStylePlain target:self action:@selector(yourMethod:)];
navItem.leftBarButtonItem = leftButton;
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Post" style:UIBarButtonItemStylePlain target:self action:@selector(yourOtherMethod:)];
navItem.rightBarButtonItem = rightButton;
navBar.items = @[ navItem ];
[self.view addSubview:navBar];
我希望这会有所帮助,祝你好运:)
将此代码添加到您的 viewDidLoad 方法中,一切都会自行构建。请注意,用您自己的方法签名替换选择器 -
愉快的编码
【讨论】:
绝对有可能。
可能最简单的方法是将您正在模态呈现的UIViewController 嵌入到UINavigationViewController 中,然后添加Done 按钮,执行类似的操作
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(dismiss)];
self.navigationItem.rightBarButtonItem = doneButton;
并实现如下dismiss 方法
- (void)dismiss {
[self.presentingViewController dismissViewControllerAnimated:YES
completion:nil];
}
【讨论】:
UINavigationController。这样,您就可以“免费”获得酒吧。有几种方法可以做到这一点,但这取决于您呈现模态视图的方式。
//add done button to navigation bar
UIBarButtonItem *doneBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(userPressedDone)];
self.navigationItem.rightBarButtonItem = doneBarButtonItem;
然后在你的视图控制器的某处有这样的方法
-(void)userPressedDone {
// Action For Done Button Tapped
}
【讨论】: