5

在我的子类中,NSObject我想调用类似

    [[self navController] presentModalViewController:myView animated:YES];

但是我的尝试都没有成功。如果我不在的子类中,如何调用模态视图UIViewController

解决方案:

#import "myProjectNameAppDelegate.h"
// ...
MyViewController *myView = [[MyViewController alloc] init];
myProjectNameAppDelegate *appDelegate = (myProjectNameAppDelegate *)[[UIApplication sharedApplication] delegate];
[[appDelegate navController] presentModalViewController:myView animated:YES];
4

3 回答 3

7

调用 presentModalViewController 的更好方法是传递viewcontrollerNSobject类。从这里调用nsobject函数uiviewcontroller 这是带有邮件示例的代码

In view Controller //你当前的视图

[nsobjectclassObject OpenMailComposer:self];//这会将视图控制器带入NSobject

在 NSObject 类中 //可能是共享类

-(void)OpenMailComposer:(UIViewController*)view
{

    viewControllertoShow = view; // viewControllertoShow is UIVIewcontroller object
    MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc]init];
    mailView.mailComposeDelegate = self;
    [mailView setSubject:@"Hey! check this out!"];
  [viewControllertoShow presentModalViewController:mailView animated:YES];
}

对于解雇,NSObject class您可以执行以下操作

[viewControllertoShow dismissViewControllerAnimated:YES]

于 2012-08-14T13:47:20.450 回答
2

我看不到没有 ViewController 显示模式视图的方法。您必须在您的类中存储对 UIViewController 的引用,以便您可以访问它。或者在你的 AppDelegate 中设置一个属性,你可以通过调用 [[UIApplication sharedApplication] delegate];

于 2010-09-21T12:37:17.213 回答
0

如果你拿着 navigationController 或一些 viewController,你可以呈现一个模态视图控制器。

你的是什么myView?是视图,还是视图控制器。我希望它是一个视图控制器,否则,这就是您的代码无法运行的原因

于 2010-09-21T13:15:55.127 回答