如何知道iphone中当前的viewcontroller名称

如何知道iphone中当前的viewcontroller名称,iphone,objective-c,uiviewcontroller,Iphone,Objective C,Uiviewcontroller,我有实现UIViewController的BaseView。项目中的每个视图都必须实现此BaseView 在BaseView中,我有一个方法: -(void) checkLoginStatus { defaults = [[NSUserDefaults alloc] init]; if(![[defaults objectForKey:@"USERID"] length] > 0 ) { Login *login=[[Login alloc] in

我有实现UIViewController的BaseView。项目中的每个视图都必须实现此BaseView

在BaseView中,我有一个方法:

-(void) checkLoginStatus
{
    defaults = [[NSUserDefaults alloc] init];

    if(![[defaults objectForKey:@"USERID"] length] > 0 )
    {
        Login *login=[[Login alloc] initWithNibName:@"Login" bundle:nil];
        [self.navigationController pushViewController:login animated:TRUE];
        [login release];
    }
    [defaults release];
}
问题是我的登录视图还实现了BaseView,检查登录,然后再次打开LoginView,即陷入递归调用

我可以签入checkLoginStatus方法吗?如果请求来自LoginView,则不采取任何其他操作检查登录。 例:


请帮助..

在checkLoginStatus中添加一个参数,并在从LoginView调用方法时设置该参数,如果设置了该参数,请在checkLoginStatus中检查该参数跳过此块…即

if(![[defaults objectForKey:@"USERID"] length] > 0  && var1 != TRUE)
{
     Login *login=[[Login alloc] initWithNibName:@"Login" bundle:nil];
    [self.navigationController pushViewController:login animated:TRUE];
    [login release];

}

使用以下方法:

if ([self isMemberOfClass:[Login class]])
{
    CFShow(@"Yep, it's the login controller");
}
isMemberOfClass
告诉您实例是否是该类的确切实例。还有
是类的种类

if ([self isKindOfClass:[BaseView class]])
{
    CFShow(@"This will log for all classes that extend BaseView");
}
isKind测试该类是否是某个类的扩展

举个例子:

-(void) checkLoginStatus
{
    defaults = [[NSUserDefaults alloc] init];

    if (![self isMemberOfClass:[Login class]])
    {
        if (![[defaults objectForKey:@"USERID"] length] > 0 )
        {
            Login *login=[[Login alloc] initWithNibName:@"Login" bundle:nil];
            [self.navigationController pushViewController:login animated:TRUE];
            [login release];
        }
    }
    [defaults release];
}

在登录中实现空的checkLoginStatus

@implementation Login
  -(void) checkLoginStatus {}
@end
@implementation Login
  -(void) checkLoginStatus {}
@end