Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在带有按钮的UINavigationBar中添加子视图不会';行不通_Iphone_Ios_Objective C_Ipad - Fatal编程技术网

Iphone 在带有按钮的UINavigationBar中添加子视图不会';行不通

Iphone 在带有按钮的UINavigationBar中添加子视图不会';行不通,iphone,ios,objective-c,ipad,Iphone,Ios,Objective C,Ipad,我有一个UINavigationController子类,在viewDidLoad中我有以下代码: self.containerView_ = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, self.navigationController.navigationBar.frameHeight)]; [self.containerView_ setBackgroundColor:[UIColor yellowColor]];

我有一个UINavigationController子类,在viewDidLoad中我有以下代码:

self.containerView_ = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, self.navigationController.navigationBar.frameHeight)];
    [self.containerView_ setBackgroundColor:[UIColor yellowColor]];
    [self.containerView_ setAutoresizingMask:UIViewAutoresizingNone];

    self.profileButton_ = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 30, 30)];
    [self.profileButton_ addTarget:self action:@selector(showProfileView:) forControlEvents:UIControlEventTouchUpInside];
    [self.profileButton_ setCenterY:self.navigationController.navigationBar.frameHeight/2];
    [self.profileButton_ setImage:[UIImage imageNamed:@"profile_icon.png"] forState:UIControlStateNormal];

    self.socialButton_ = [[UIButton alloc] initWithFrame:CGRectMake(self.profileButton_.frameRight + 10, 0, 30, 30)];
    [self.socialButton_ addTarget:self action:@selector(showSocialView:) forControlEvents:UIControlEventTouchUpInside];
    [self.socialButton_ setCenterY:self.profileButton_.centerY];
    [self.socialButton_ setImage:[UIImage imageNamed:@"social_icon.png"] forState:UIControlStateNormal];

    self.notesButton_ = [[UIButton alloc] initWithFrame:CGRectMake(self.socialButton_.frameRight + 10, 0, 30, 30)];
    [self.notesButton_ addTarget:self action:@selector(showNotesView:) forControlEvents:UIControlEventTouchUpInside];
    [self.notesButton_ setCenterY:self.profileButton_.centerY];
    [self.notesButton_ setImage:[UIImage imageNamed:@"notes_icon.png"] forState:UIControlStateNormal];


    [self.containerView_ addSubview:self.profileButton_];
    [self.containerView_ addSubview:self.notesButton_];
    [self.containerView_ addSubview:self.socialButton_];

    [self.navigationBar addSubview:self.containerView_];

我可以看到UIButton,但容器背景甚至不是黄色。当我按下按钮时,不会调用UIButton的操作。知道这是为什么吗?

您正在子类化UINavigationController

引用Apple的话:“这个类不是用来子类化的。”

调整UINavController的常用方法是从包含的UIViewController的特定位置访问导航栏。您可以将目标/操作方法放在UIViewController中