我想我的应用程序有一个简单的问题。 首先,我使用PraseSDK来使用他们提供的LoginView。
现在我要创建该函数并让它由
中的视图控制器调用 -(void) viewDidLoad
效果很好。
现在我想知道我是否可以将该代码放入全局函数类中?
我创建了一个名为glo_function
的类
在其中我创建了一个调用
+(void) CallLoginScreen{
PFLogInViewController *login = [[PFLogInViewController alloc] init];
login.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton;
[self presentModalViewController:login animated:NO];}
在我的ViewController Iam中使用“callLoginScreen”就像这样
[glo_function CallLoginScreen]
视图控制器将调用方法,但视图不会显示。 好吧,我得到错误,试图运行该应用程序。
No known class method for selector 'presentModalViewController:animated:'
所以我很确定这是因为我使用了“自我”in->
[self presentModalViewController:login animated:NO]
有人可以帮我解决这个问题吗?应该很容易,希望:)
-----------------------响应----------------------- -------
我做完之后,应用程序崩溃了。 Call方法看起来像这样:
[glo_function showLoginScreenUsingViewController];
在glo_function.m中,方法看起来像这样:
+ (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
答案 0 :(得分:2)
"自"总是指你所在的对象。在你的情况下,它是glo_function对象。因此,当你说自己时,你正在与错误的对象交谈。
你仍然可以做你想要的但是在你的glo_function方法中你需要传递对视图控制器的引用。然后在你的函数中使用它而不是self。
+ (void)showLoginScreenUsingViewController:(UIViewController *)VC {
PFLogInViewController *login = [[PFLogInViewController alloc] init];
login.fields = PFLogInFieldsUsernameAndPassword | PFLogInFieldsLogInButton;
[VC presentModalViewController:login animated:NO];
}