1

如果屏幕上显示的视图控制器是“PrimaryViewController”,我正在尝试显示警报我不确定如何获取视图控制器的名称,然后将其转换为 NSString ...任何帮助将不胜感激! !!

//get name of current view controller
UIViewController *currentVC = self.navigationController.visibleViewController;
if ([currentVC isEqualToString:@"PrimaryViewController"])
{
    //display name of current view controller in alert    
    UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Your current view controller:" message:currentVC delegate:nil 
cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
}
4

4 回答 4

6

您可以使用NSStringFromClass(). 它以字符串形式返回类的名称。

示例代码:

if ([NSStringFromClass([currentVC class]) isEqualToString:@"PrimaryViewController"])
{
    UIAlertView *alert = [[UIAlertView alloc]
    initWithTitle:@"Your current view controller:" message:NSStringFromClass([currentVC class]) delegate:nil 
    cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
}
于 2013-06-08T07:46:04.690 回答
2
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Your current view controller:" message:NSStringFromClass([currentVC class]) delegate:nil 
cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alert show];
于 2013-06-08T07:32:28.410 回答
2

您可以用作

if ([NSStringFromClass([self class]) isEqualToString:@"PrimaryViewController"])

使用它来获取您的班级名称:

NSString * name = NSStringFromClass([self class]);

或者

NSString * name = NSStringFromClass([currentVC class]);
于 2013-06-08T07:36:12.340 回答
0

我会尝试这样的事情:

 UIViewController *currentVC = self.navigationController.visibleViewController;

 if ([NSStringFromClass([currentVC class] isEqualToString:@"PrimaryViewController"])
    {
     UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Alert"    
     message:NSStringFromClass([currentVC class]) delegate:nil 
     cancelButtonTitle:NSLocalizedString(@"Ok",nil)       
     otherButtonTitles:nil, nil];

     [alert show];

    }

祝你好运!

于 2013-06-08T08:07:14.490 回答