任何人都可以點我創建一個自定義視圖控制器作爲容器視圖控制器的好例子嗎?我能找到的唯一文檔是UIViewController Class Reference中的幾段。我覺得我需要比這更多的信息,並且示例實現會很好。 Google一無所有。容器視圖控制器示例
我的方法特別感興趣:
transitionFromViewController:toViewController:duration:options:animations:completion:
任何人都可以點我創建一個自定義視圖控制器作爲容器視圖控制器的好例子嗎?我能找到的唯一文檔是UIViewController Class Reference中的幾段。我覺得我需要比這更多的信息,並且示例實現會很好。 Google一無所有。容器視圖控制器示例
我的方法特別感興趣:
transitionFromViewController:toViewController:duration:options:animations:completion:
我迄今發現的最好的東西是WWDC 2011會議視頻Session 102 - Implementing UIViewController Containment。
同上。這不是我最喜歡的演示代碼示例,但它確實正確地實現了VC容器以及內存管理 - 當子視圖控制器不再可見時,它們的發佈非常重要。 – memmons
不幸的是,如何使用ContainerViewController的演示無法正常工作,因爲他沒有在他的iPad上設置電子郵件:-( –
該會話是否有代碼示例? –
難道這:
http://subjective-objective-c.blogspot.com/2011/08/writing-high-quality-view-controller.html
足以滿足您的需求?
其實我已經發現,但不幸的是它是關於Ios4寫的,但是5已經做了重大改變。 Apple現在明確支持創建自定義視圖控制器容器,儘管他們似乎不想幫助我們制定如何使用它們。不過謝謝。 – Undistraction
你能告訴我他們在哪兒說的嗎?不要懷疑你,只是好奇,因爲我也一直在努力。 – Peres
不用擔心。我通過代碼看他的容器類,其中沒有使用任何下列方法:addChildViewController :, removeFromParentViewController, transitionFromViewController:toViewController:持續時間:選擇:動畫:完成:, willMoveToParentViewController:和 didMoveToParentViewController:裏面全是在更新的UIViewController的ios5文檔中提到。 – Undistraction
- (void)viewDidLoad{
[super viewDidLoad];
// I put self in a Navigation VC so we can use its right navigationbar
// item for triggering the transition
self.navigationItem.rightBarButtonItem =
[[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemEdit
target:self
action:@selector(button:)]
autorelease];
// create test1 and test2 instance (subclass UIViewController and
// also need to define their own nibs)
vc1 = [[test1 alloc]initWithNibName:@"test1" bundle:nil];
vc2 = [[test2 alloc]initWithNibName:@"test2" bundle:nil];
//add to the container vc which is self
[self addChildViewController:vc1];
[self addChildViewController:vc2];
//the entry view (will be removed from it superview later by the api)
[self.view addSubview:vc1.view];
}
這個IBAction爲觸發兩個風投之間的過渡:
-(IBAction)button:(id)sender {
[self transitionFromViewController:vc1
toViewController:vc2
duration:0.5
options:UIViewAnimationOptionTransitionCurlDown
animations:nil
completion:nil];
}
這是一個很好的例子,但是這種情況下的內存管理可以改進:http://stackoverflow.com/a/8453677/849616更適合的解決方案 – Vive
不是說你' [self addChildViewController:vc1]; 沒有意義。Container VC可能有多個Container View Controller。 –
@Vive我已經在我的項目中達到了一個關注內存管理的地步。我有什麼特別的鏈接,你發佈的內存管理更好?我是非常新的,很難看到差異es – jacobronniegeorge
不知道這是不是一個「好」的例子,但你可以從https://bitbucket.org/javieralonso/jaacordeonviewcontroller/overview
得到一個免費的集裝箱的ViewController這是一個完整的手風琴隱喻容器視圖控制器
很好找。這看起來很有用。 – Undistraction
除了WWDC會話視頻Session 102 - Implementing UIViewController Containment高加密已經mentio斯內德,Apple WWDC 2012 session on "The Evolution of View Controllers on iOS"還涵蓋了這個主題和示例代碼示例代碼包的一部分:
還有這裏一個例子: https://github.com/toolmanGitHub/stackedViewControllers
+1提到哪裏可以得到那該死的代碼包。我一直在看它。 –
+1,爲什麼o蘋果爲什麼不能在他們的成員頁面上放置WWDC會話代碼? – axello
+1,你介意共享,如何獲得這個源代碼路徑? –
這是我最喜歡的(iOS7就緒)教程/關於這個問題的例子(所有三個都在GitHub上可用的源代碼):
Custom Container View Controller Transitions
Interactive Custom Container View Controller Transitions
然後,當然,蘋果提供了一個關於這個主題,我發現在整個寫作有價值的:
你發現了一個比hypercrypt提到的這個以外的其他來源? –
還沒有。如果我有時間,今天晚些時候我會再挖一次。看起來奇怪的是,由於它的重要性和實用性,它會有如此少的信息。我想知道它是否有問題,並且在改進後會有更好的記錄。 – Undistraction
這讓我非常困惑。例如,視圖只能有一個嵌入式控制器。如果您想在該容器視圖上切換控制器,那該怎麼辦? –