在NSObject类中显示UIAlertView

Jac*_*ies 5 iphone objective-c nsobject ipad ios

我正在我的应用程序中构建一个将被多次调用的登录系统.因此,我不是将代码复制并粘贴到几个位置,而是创建一个NSObject类,因此我可以在需要时调用该类.

登录系统将显示UIAlertView,当点击"OK"时,系统将尝试登录.我可以调用该类,UIAlertView将显示,但我无法分辨哪些按钮被点击.这是我的代码:

//Calling the login system

Login *login = [[Login alloc] init];
Run Code Online (Sandbox Code Playgroud)

Login.h:

#import <Foundation/Foundation.h>

@interface Login : NSObject <UIAlertViewDelegate> {

}

@end
Run Code Online (Sandbox Code Playgroud)

登录.m:

#import "Login.h"

@implementation Login

+(void)initialize {

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Login" message:nil delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];

    [alert show];
    [alert release];

    NSLog(@"Testing");

}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex  {

    NSLog(@"Here");

    NSString *title = [alertView buttonTitleAtIndex:buttonIndex];  

    if([title isEqualToString:@"OK"]) {

        NSLog(@"Tapped");

    }

}

@end
Run Code Online (Sandbox Code Playgroud)

现在,在我将UITextField放入视图之前,我只想让应用知道哪个按钮被点击了.Testing出现在日志中,但既不出现Here也不Tapped出现.谢谢!

mox*_*oxy 1

您的警报视图不应由类方法 +(void)initialize 调用,而应由实例 -(id)init 方法调用,这就是您的实例未收到通知的原因。

类方法“+(void)initialize”在类首次加载时被调用。

实例方法“-(id)init”的名称以 init 开头,在创建(实例化)对象时调用。

-(id)init {

    //alert view

    self = [super init];

    return self;

}
Run Code Online (Sandbox Code Playgroud)