2

只是一个简单的问题

目前我呈现这样的模态视图:

+ (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

4

2 回答 2

3

寻找UIViewController物业presentingViewController。这是来自文档的引用:

如果接收到此消息的视图控制器由另一个视图控制器呈现,则此属性包含正在呈现它的视图控制器。如果没有显示视图控制器,但显示了它的祖先之一,则此属性保存显示最近的祖先的视图控制器。如果既没有显示视图控制器也没有显示它的任何祖先,则此属性为 nil。

因此,您可以使用该属性来获取呈现 VC 的名称。

于 2013-01-05T00:42:23.880 回答
2

您可以使用NSStringFromClass(vc.class)将类名作为NSString.

于 2013-01-05T00:48:19.097 回答