![](/img/trans.png)
[英]How to dismiss formSheet Modal from ParentViewController?
[英]How to present modal view in “parentViewController”?
我正在嘗試編寫iPad應用程序。
我有UIViewController
作為masterView和detailView (我的手工splitView)的parentViewController (全屏)。 另外,我有一個單獨的視圖(例如moreDetailView ),其中包含class和xib,我希望將其顯示為模態。
masterView具有UITableView
而detailView具有UICollectionView
。 他們兩個都有自己的類和xib。 在detailView中有幾項。
在我的detailView的 didSelectItemAtIndexPath:中 ,我想顯示moreDetailView 。
那么,我該怎么做呢? 以及如何在parentViewController中顯示它,而不是在detailView中顯示它。
希望我的問題是可以理解的。
要初始化您的masterview
和detailview
在parentview
。 要訪問parentcontroller
你可以聲明在屬性detailcontroller
作為
UIViewController *parent;
在初始化時,您可以
detailController.parent=self;
在顯示模態時,您可以執行
[parent presentModal]; //instead of [self presentModal];
希望以上對您有用,但是您將需要糾正語法。
下面的代碼將在splitView頂部的模式表單中顯示您的控制器(您可以使用setModalPresentationStyle進行更改)。
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *moreDetailViewController = [[MoreDetailViewController alloc] init];
[moreDetailViewController setModalPresentationStyle:UIModalPresentationFormSheet]; //or style depending on what you want
[moreDetailViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:moreDetailViewController animated:YES completion:^{
//stuff you want to do after the viewController has been presented
}]; }
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIViewController *moreDetailViewController = [[MoreDetailViewController alloc] init];
[moreDetailViewController setModalPresentationStyle:UIModalPresentationFormSheet]; //or style depending on what you want
[moreDetailViewController setModalTransitionStyle:UIModalTransitionStyleCoverVertical];
[self presentViewController:moreDetailViewController animated:YES completion:^{
//stuff you want to do after the viewController has been presented
}];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.