如何访问呈现模态视图的UIViewController类/ className?

时间:2013-01-05 00:15:54

标签: objective-c ios ipad uiviewcontroller

只是一个简单的问题

目前我提出了这样的模态视图:

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

2 个答案:

答案 0 :(得分:3)

查找UIViewController属性presentingViewController。以下是文档的引用:

  

如果显示收到此消息的视图控制器   另一个视图控制器,此属性保存视图控制器   正在呈现它。如果没有呈现视图控制器,而是其中之一   它的祖先正在呈现,这个属性持有的观点   控制器呈现最近的祖先。如果既不是观点   控制器或其任何祖先都被提出,这个属性   没有。

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

答案 1 :(得分:2)

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