2011-02-02 91 views
1

我正在寻找创建一个酒吧,只有在状态栏下的iPhone界面顶部的几个按钮,控制器是一个简单的UIViewController,所以这是一个不用于导航的按钮栏。我已经有了一些工作,但感觉有点笨拙,我想知道我是否做得对,并且没有错过任何捷径。独立的UINavigationBar?

  • 有没有行动/选择器:设置,因为我只是设置它。
  • 我可能会删除NSArray便捷方法并添加一个alloc/release。

代码:

- (void)loadView { 
    // VIEW 
    UIView *tempView = [[UIView alloc] initWithFrame:screenFrame]; 

    // NAV BAR 
    UINavigationBar *tempNavigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    [tempNavigationBar setBarStyle:UIBarStyleBlack]; 
    UIBarButtonItem *testButton = [[UIBarButtonItem alloc] initWithTitle:@"TEST" style:UIBarButtonItemStyleBordered target:self action:nil]; 

    UINavigationItem *navItem = [[UINavigationItem alloc] init]; 
    [navItem setLeftBarButtonItem:testButton]; 
    [testButton release]; 

    [tempNavigationBar setItems:[NSArray arrayWithObject:navItem]]; 
    [tempView addSubview:tempNavigationBar]; 
    [tempNavigationBar release]; 
    [navItem release]; 

    [self setView:tempView]; 
    [tempView release]; 
} 
+0

你没有使用Interface Builder的原因?我认为所有这些代码都可以从IB完成。 – 2011-02-02 19:04:07

+3

为了保持真实,我通常会使用interfaceBuilder,但是这次我试图以编程方式做事情,希望能够更好地理解事情的工作原理。特别对于一个新用户来说,尽管IB非常有用并且功能强大,但它确实隐藏/抽象了一些有助于理解的内容。 – fuzzygoat 2011-02-02 19:25:36

回答

1

这看起来好了给我。另一种方法是在Interface Builder中执行此操作,但这完全是另一回事。

如果您打算支持自动旋转,您可能需要添加一些代码来为导航栏设置自动调整大小的遮罩,使其正确展开。实际上,我会使用Interface Builder来实现这一点,因为我非常擅长可视化自动调整大小的蒙版。

+0

非常感谢,国际文凭组织,通常我会(见问题的评论),但这次我只是想了解以编程方式做它。 – fuzzygoat 2011-02-02 19:29:19

1

是的问题重复,但为什么你不喜欢I.B.?由于您不需要导航功能,因此您需要考虑替代方案,即想到UIToolBar。其用法与导航栏相同,因为您需要使用NSArray的setItems

我希望你能成功找到合适的解决方案。