带有UIToolbar的UISplitViewController在横向模式下不显示UIBarButtonItem

时间:2012-07-10 22:04:07

标签: ios xcode uisplitviewcontroller uibarbuttonitem uitoolbar

我是SplitViewController的新手,我遇到了以下问题。这是设置:

在IB中,我只有一个VC链接到SVC作为详细VC(这与标准的Master Detail项目模板相比较,后者有一个Nav Controller作为详细层次结构的起点)。我这样做是为了尝试在细节VC中最大化图像空间。

然后我将UIToolbar(称为imageTable)添加到详细VC中,我将其与IBoutlet连接到详细VC类。

我使用详细VC作为SVC代表。

然后我在详细VC中采用了跟随SVC委托3的方法:

#pragma mark - SplitViewController Delegates
-(BOOL) splitViewController:(UISplitViewController *)svc
   shouldHideViewController:(UIViewController *)vc
             inOrientation:(UIInterfaceOrientation)orientation
{
  return UIInterfaceOrientationIsPortrait(orientation); 
}



-(void) splitViewController:(UISplitViewController *)svc
     willHideViewController:(UIViewController *)aViewController
         withBarButtonItem:(UIBarButtonItem *)barButtonItem
      forPopoverController:(UIPopoverController *)pc
{    
  barButtonItem.title=@"ImageList";
  NSMutableArray *toolbarItems=[self.imageTable.items mutableCopy];
  [toolbarItems insertObject:barButtonItem atIndex:0];
  self.imageTable.items=toolbarItems;
}



-(void) splitViewController:(UISplitViewController *)svc
     willShowViewController:(UIViewController *)aViewController
  invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem
{
  NSMutableArray *toolbarItems=[self.imageTable.items mutableCopy];
  [toolbarItems removeObjectAtIndex:0];
  self.imageTable.items=toolbarItems;
}

因为我没有使用Nav Controller作为VC的起点,所以我遇到了以下内容:

  • 当我回到横向时,UIToolBar会自动消失。它是SVC类中固有的,因为在风景中不再需要代表VC重新出现的UIBarbuttonItem,所以我创建的UIToolbar(强调“我”)......

  • 有没有办法为UIToolbar添加或启用标题,或者是使用标签的唯一方法。

由于

2 个答案:

答案 0 :(得分:0)

查看我的苹果MultipleDetailViews示例代码。他们在代码中创建UIToolBar(在他们的第一个视图控制器中),

@property (nonatomic, retain) IBOutlet UIToolbar *toolBar;

然后为其他观点声明UINavigationBars

@property (nonatomic, retain) IBOutlet UINavigationBar *navigationBar;

我使用此示例代码作为项目的起点,一切运行顺利。

此外,我不确定您对Objective-C有多新,但您可能想要使用MultipleDetailViews示例代码查看this tutorial

答案 1 :(得分:0)

我在CS193P课程中一直在向前推进,我收集的简单答案是:

如果您需要UIToolbar(添加按钮或标题),只需在导航控制器中嵌入表视图控制器或您正在使用的任何视图控制器 - 这样您就可以获得免费的UIToolbar(带有轻松访问标题等。)

即使你不需要推/弹或塞住,也要这样做。

KMB