无法在UIViewController子类上设置标题

时间:2015-04-07 03:02:37

标签: ios objective-c uiviewcontroller

我遇到了以下问题。

我已经创建了一个自定义视图控制器,它有一些我需要的有用方法。

这是.h

中的代码
@interface MYViewController : UIViewController

- (void)method;
- (void)otherMethod;

@end

这是我的MYViewController类的init方法:

- (instancetype)init
{
    self = [super init];

    return self;
}

然后,当我尝试扩展该类时,我无法设置子控制器的标题。例如,在“MYOtherController.h”

@interface MYOtherViewController : MYViewController

- (void)childControllerMethod;

@end

这是MYOtherViewController的初始化:

- (instancetype)init
{
    self = [super init];

    return self;
}

然后,如果我实例化一个MYOtherViewController对象并尝试设置标题,它什么都不会发生。例如:

MYOtherViewController *controller = [[MYOtherViewController] alloc] init];
controller.title = @"Hello";

如果我把它放在MYOtherViewController类的viewDidLoad中,它会记录标题是nil:

- (void)viewDidLoad {
    NSLog(@"title: %@", self.title);
    [super viewDidLoad];
}

为什么不能在这个子类中设置标题?

1 个答案:

答案 0 :(得分:0)

在alloc init之后还没有制作viewcontroller的标题,你需要在viewDidLoad之后设置它(这是所有UI元素初始化的时候),所以你可以做的是{{1在alloc init之后设置的viewcontroller,然后在viewDidLoad中,将标题设置为@property的值