Iphone 从类调用视图

Iphone 从类调用视图,iphone,ios,uiviewcontroller,Iphone,Ios,Uiviewcontroller,我想我的应用程序有一个简单的问题。 首先,我使用Prasedk来使用他们提供的LoginView 现在我要创建这个函数,并让它由中的视图控制器调用 -(void)viewDidLoad 它工作得很好 现在我想知道我是否可以把这些代码放到一个全局函数类中 我创建了一个名为:glo\u function 在它里面,我创建了一个名为call的函数 +(void) CallLoginScreen{ PFLogInViewController *login = [[PFLogInViewControlle

我想我的应用程序有一个简单的问题。 首先,我使用Prasedk来使用他们提供的LoginView

现在我要创建这个函数,并让它由中的视图控制器调用

-(void)viewDidLoad

它工作得很好

现在我想知道我是否可以把这些代码放到一个全局函数类中

我创建了一个名为:
glo\u function
在它里面,我创建了一个名为call的函数

+(void) CallLoginScreen{
PFLogInViewController *login = [[PFLogInViewController alloc] init];
login.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton;
 [self presentModalViewController:login animated:NO];}
在我的ViewController中,我使用“callLoginScreen”,如下所示

[glo_function CallLoginScreen]
视图控制器将调用methode,但视图不会显示。 我在尝试运行应用程序时遇到了一个错误

No known class method for selector 'presentModalViewController:animated:'
所以我很确定这与我在->中使用“self”的事实有关

有人能帮我吗?应该很容易,希望:)

-----------------------回应------------------------------

嗨,在我这么做之后,应用程序崩溃了。 调用方法如下所示:

    [glo_function showLoginScreenUsingViewController];
+ (void)showLoginScreenUsingViewController:(UIViewController *)VC {
PFLogInViewController *login = [[PFLogInViewController alloc] init];
login.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton;
[VC presentModalViewController:login animated:NO];}
在glo_function.m中,方法如下所示:

    [glo_function showLoginScreenUsingViewController];
+ (void)showLoginScreenUsingViewController:(UIViewController *)VC {
PFLogInViewController *login = [[PFLogInViewController alloc] init];
login.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton;
[VC presentModalViewController:login animated:NO];}
启动应用程序时的结果:

2012-12-28 21:20:24.003 Logbuch40[1942:c07] 
*** Terminating app due to uncaught exception 'NSInvalidArgumentException'
, reason: '+[glo_function showLoginScreenUsingViewController]: 
unrecognized selector sent to class 0x22e9ec
“自我”总是指你所处的对象。在您的例子中,它是glo_函数对象。所以当你说self时,你是在和错误的对象说话

您仍然可以执行所需的操作,但在glo_函数方法中,您需要将引用传递给视图控制器。然后在你的功能中使用它,而不是在你的自我中

+ (void)showLoginScreenUsingViewController:(UIViewController *)VC {
     PFLogInViewController *login = [[PFLogInViewController alloc] init];
     login.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton;
     [VC presentModalViewController:login animated:NO];
}

好吧,我就是这么想的!我只需要知道怎么做!:)在我进一步调试之后,我发现在进入方法ShowLoginsScreeningViewController之前,没有调用该方法,并且应用程序崩溃。所以我认为问题在于:[glo_函数showloginscreensingviewcontroller];发现了我的问题!在glo_function.h中,我忘了更改方法名。之后,我将调用方法更改为:[GlobaleFunction showloginscreensingviewcontroller:self];非常感谢!:)问题解决了!:)