从UIViewController设置标签标题

时间:2015-01-09 05:52:16

标签: ios iphone uiviewcontroller uilabel categories

我有一个viewController类别,并且在类别中有一个UILabel。 我想从anther viewController设置标签标题。

当我试图崩溃时。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[BaseViewController setTitleLabel:]: unrecognized selector sent to instance 0x7fcfe857a580'

我怎样才能做到这一点。

编辑:

TitleLabel是Category中的标签,这是UIViewController类别中的代码

 UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake(0, 0, 50, 50);
    [btn setImage:[UIImage imageNamed:@"Menu"] forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(MenuPressed:) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *leftBtn = [[UIBarButtonItem alloc]initWithCustomView:btn];

    UIButton *btn1 = [UIButton buttonWithType:UIButtonTypeCustom];
    btn1.frame = CGRectMake(0, 0, 70, 44);
    [btn1 setTitle:@"Clickme!" forState:UIControlStateNormal];
    btn1.backgroundColor = [UIColor blueColor];


    UILabel *titleLabel = [UILabel new];
    titleLabel.frame = CGRectMake(0, 0, 100, 44);
    titleLabel.backgroundColor =[UIColor cyanColor];

    UIBarButtonItem *barBtn2 = [[UIBarButtonItem alloc]initWithCustomView:btn1];
    UIBarButtonItem *barTitle = [[UIBarButtonItem alloc]initWithCustomView:titleLabel];
    UIBarButtonItem *flexibleItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];

    NSArray *barBtnArray = @[leftBtn,flexibleItem,barTitle,barBtn2];
    self.navigationItem.leftBarButtonItems = barBtnArray;

2 个答案:

答案 0 :(得分:0)

您不能这样做,因为label属性是在.m文件中声明的。它不会在外面访问,如果你试图访问,那么它会崩溃(这就像私人财产)。你有两个选择来解决这个问题。

选项1

.h文件本身

中声明标签属性

选项2

编写一个公共方法,该方法以NSString作为参数,并将其设置为标签的值。

答案 1 :(得分:0)

UIViewController没有titleLabel的属性。检查您的类别类别。