2013-01-08 44 views
2

我有一個UIViewController具有兩個部分:的UIViewController在UIViewController中超過了界限

  • 一個UIView

  • 棒在頂部

  • 具有多個下拉水平設置菜單和具有縮略圖圖像

由於第二部分有點複雜,我決定它是一個UIViewController但現在我有一些擔心:

  • 因爲我有下拉菜單,菜單將超出欄的範圍。我該如何處理?

  • 難道在UIViewController內有UIViewController的好方法嗎?

  • 如何實現下拉菜單?據我所知,IOS沒有下拉菜單。

回答

1

要在另一個控制器中使用控制器,請使用自定義容器視圖控制器。

  • 視圖控制器編程指南適用於iOS的Creating Custom Container View Controllers部分。

  • 另請參閱UIViewController類參考的相應Implementing a Container Controller部分。

  • 另請參閱WWDC 2011的視頻,Implementing UIViewController Containment

  • 在iOS 6中,您可以設置集裝箱意見故事板,可自動採用嵌入塞格斯,從需要顯式調用addChildViewController等的節省您的,如果你使用故事板。在Interface Builder中查看「容器視圖」對象。如果您要更改子控制器,則必須使用上述鏈接中提到的API,但對於第一個子項的配置,您可以在iOS 6中的Interface Builder中進行設置。

0

在這種情況下,設置控制器遏制可能是正確的方法。唯一的限制是它適用於iOS 5及更高版本。

在這裏,你必須做的:

// add as child VC 
[self addChildViewController:_barViewController]; 

// add it to container view, calls willMoveToParentViewController for us 
[_containerView addSubview:_barViewController.view]; 

// notify it that move is done 
[_barViewController didMoveToParentViewController:self]; 

在這裏,你可以找到更多的信息Containing ViewControllers。明顯的Apple文檔是你的朋友。另外,如果你搜索「uiviewcontroller containment」,你可以在那裏找到很多東西。

如果您的應用需要定位iOS 5不是最小的設備,則應該依靠UIViewController和兩個不同的視圖。

0

關於下拉菜單,在我看來,它們不適用於觸摸界面。有一些替代方案,例如UISegmentedControl類的實例。在這裏,您可以閱讀關於分段控制的Apple UI設計指南:http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/mobilehig/UIElementGuidelines/UIElementGuidelines.html#//apple_ref/doc/uid/TP40006556-CH13-SW1。如果您更多地解釋您所需的UI功能,我們可以從用戶體驗角度爲您提供更好的選擇。

如果你堅持使用下拉菜單,那裏有一些第三方控制庫;例如:http://www.cocoacontrols.com/