只是一個簡單的問題如何訪問呈現模態視圖的UIViewController類/ className?
目前我提出這樣一個模式的看法:
+ (void)showModalController:(id)ContentController InViewController:(UIViewController*)vc withFrame:(CGRect)rect{
UINavigationController *modalViewNavController = [[UINavigationController alloc] initWithRootViewController:ContentController];
modalViewNavController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
modalViewNavController.modalPresentationStyle = UIModalPresentationFormSheet;
[vc presentModalViewController:modalViewNavController animated:YES];
//it's important to do this after presentModalViewController
modalViewNavController.view.superview.frame = rect;
//self.view assumes the base view is doing the launching, if not you might need self.view.superview.center etc.
modalViewNavController.view.superview.center = vc.view.center;
[modalViewNavController release];
}
我通過,這將是呈現的UIViewController內容的值,在自定義模式的大小。我還傳遞UIViewController的值,其中將呈現模態。
就代碼而言,我想知道內容類中的「vc」名稱,如果可以的話。
編輯
可以說我有2類,一種叫DetailViewController那裏進行模態的呈現。另一個稱爲ModalContentViewController。
我想在ModalContentViewController類知道(視圖出現時,或加載)的DetailViewController的名稱。
任何想法?
PD:目前使用...
的XCode 4.4.1 的iPad模擬器iOS5.1 iOS5.1
你能清理一下你的問題嗎?我很困惑你是否獲得了內容控制器或呈現視圖控制器的名稱。另外,您應該考慮兩點改進:將ContentController聲明爲「UIViewController *」而不是「id」。這確保瞭如果你嘗試傳遞不是'UIViewController'(子類)的東西,你會得到一個警告,這很好,因爲'initWithRootVC'方法需要一個視圖控制器。 – MaxGabriel
其次,您可能會考慮將此方法設置爲「UIViewController」的一個類別,您可以通過在UIViewController上的文件>新建文件> obj-c category> category來執行此類別。然後,在'UIViewController'上添加這個方法作爲實例方法。這是編寫該方法的一種更自然的方式,而不是通過視圖控制器傳遞給它('InViewController:') – MaxGabriel
感謝MaxGabriel, 我會做出改變並閱讀一些有關類別 – iDaniel89