如何在iphone应用程序开发中的导航栏上的分段控制器中添加下一个和上一个按钮?

时间:2011-11-24 03:39:55

标签: iphone ios uinavigationbar uisegmentedcontrol

我遇到了很大麻烦....如何在我的分段栏上设置下一个和上一个按钮/箭头...如果有人需要关于我的问题的简要说明,请看这个链接... How can i add a next and previous button at the segmented Controller? < / p>

我已附上图片以了解问题......所以任何人都请帮助我.... enter image description here

注意:在我当前的项目中,它在分段栏上添加了5个以上的按钮,所以当我按下一个/上一个箭头时,分段栏应该从他的位置移动。如果我的问题不清楚,那么请看我的另一个链接....

先谢谢

编辑:

UIBarButtonItem *previousBarButtonItem = [[UIBarButtonItem alloc] //init];
                                      initWithTitle:@"<"
                                      style:UIBarButtonItemStyleBordered
                                      target:self 
                                      action:@selector(previousBarButtonAction:)];
self.navigationItem.leftBarButtonItem = previousBarButtonItem;

[previousBarButtonItem release];

UIBarButtonItem *nextBarButtonItem = [[UIBarButtonItem alloc] //init];
                                      initWithTitle:@">"
                                      style:UIBarButtonItemStyleBordered
                                      target:self 
                                      action:@selector(nextBarButtonAction:)];
self.navigationItem.rightBarButtonItem = nextBarButtonItem;

[nextBarButtonItem release];

//This Portion For UIToolbar

topToolBar = [UIToolbar new];
topToolBar.barStyle = UIBarStyleDefault;
[topToolBar sizeToFit];
topToolBar.frame = CGRectMake(50, 410, 280, 50);

//Add buttons
UIBarButtonItem *systemItem1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
                                                                             target:self
                                                                             action:@selector(pressButton1:)];

UIBarButtonItem *systemItem2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction
                                                                             target:self
                                                                             action:@selector(pressButton2:)];

UIBarButtonItem *systemItem3 = [[UIBarButtonItem alloc]
                                initWithBarButtonSystemItem:UIBarButtonSystemItemCamera
                                target:self action:@selector(pressButton3:)];

//Use this to put space in between your toolbox buttons
UIBarButtonItem *flexItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
                                                                          target:nil
                                                                          action:nil];

//Add buttons to the array
NSArray *items = [NSArray arrayWithObjects: systemItem1, flexItem, systemItem2, flexItem, systemItem3, nil];

//release buttons
[systemItem1 release];
[systemItem2 release];
[systemItem3 release];
[flexItem release];

//add array of buttons to toolbar
[topToolBar setItems:items animated:NO];

self.navigationItem.titleView = topToolBar;

这是我当前的编码位置现在我在uitoolbar中有4个按钮,但只有3个按钮可以看到所以我想移动这个工具栏,当我按下一个或上一个按钮,看到其他按钮的uitoolbar框架外??

编辑:

我能够使用uiview动画滚动导航栏项目,但现在我的问题是当我按下下一个/上一个按钮然后它根据uitoolbar坐标的变化从当前位置移动并移动到前面/下一个baritem框架,它不在uitoolbar项目中。但它应该是一个uiview,并且应该改变uiview中的坐标而不是视图...现在告诉我该怎么办才能解决这个问题。

2 个答案:

答案 0 :(得分:1)

首先,您看到的NavigationBar实际上是UIToolBar。不幸的是,无法在UINavigationBar上添加任何控件。但是您可以使用UIToolBar实现完全相同的UI,您可以在其中添加任何控件。

为实现此目的,请使用UIToolBar而不是UINavigationBar。同时使用UIBarButtonItem和自定义标题来实现下一步上一页功能。

修改

以下是UIToolBar

的几个链接
  1. http://www.codeproject.com/Articles/43658/How-to-Make-a-Toolbar-with-UIToolbar
  2. http://osmorphis.blogspot.com/2009/05/multiple-buttons-on-navigation-bar.html
  3. http://atastypixel.com/blog/making-uitoolbar-and-uinavigationbars-background-totally-transparent/
  4. 但这一切都解释了使用代码。相反,使用 Interface Builder ,使用UIToolBar变得太容易了(如果编码不是那么重要的话)。

答案 1 :(得分:0)

我认为这有点过于复杂 - 你不能只将两个UIBarButtonItems的文本设置为“&lt;”和“&gt;”?