Добавление CustomView на панель навигации - PullRequest
0 голосов
/ 09 декабря 2011

Это мой код.

- (void)viewWillAppear:(BOOL)animated
{

    customView = [[UIView alloc] init];

    UIButton *btnAdd = [[UIButton alloc] initWithFrame:CGRectMake(410, -20, 30, 40)];
    [btnAdd setBackgroundColor:[UIColor blackColor]];
    [btnAdd setBackgroundImage:[UIImage imageNamed:@"oie_815362uTrAOBMX.png"] forState:UIControlStateNormal];
    [btnAdd addTarget:nil action:@selector(addCustomer:) forControlEvents:UIControlEventTouchUpInside];
    [customView addSubview:btnAdd];

    UIButton *btnJump = [[UIButton alloc] initWithFrame:CGRectMake(450, -20, 30, 40)];
    [btnJump setBackgroundColor:[UIColor blueColor]];
    [btnJump setBackgroundImage:[UIImage imageNamed:@"oie_8153842yVgkR6XD.jpg"] forState:UIControlStateNormal];
    [btnJump addTarget:nil action:@selector(showMenue:) forControlEvents:UIControlEventTouchUpInside];
    [customView addSubview:btnJump];

    UIButton *btnBarItem = [[UIButton alloc] initWithFrame:CGRectMake(300, -20, 100, 40)];
    [btnBarItem setBackgroundColor:[UIColor greenColor]];
    [btnBarItem setBackgroundImage:[UIImage imageNamed:@"oie_99342oliBc5Sy.jpg"] forState:UIControlStateNormal];
    [btnBarItem addTarget:nil action:@selector(showScanner:) forControlEvents:UIControlEventTouchUpInside];
    [customView addSubview:btnBarItem];

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(10, -10, 30, 30)];
    [imageView setImage:[UIImage imageNamed:@"oie_972931iW4SHiZU.jpg"]];
    [customView addSubview:imageView];

    UILabel *mainLabel = [[UILabel alloc] initWithFrame:CGRectMake(50, -20, 80, 40)];
    [mainLabel setText:@"Kunden"];
    [mainLabel setBackgroundColor:[UIColor lightGrayColor]];
    [mainLabel setTextColor:[UIColor blackColor]];
    [mainLabel setFont:[UIFont fontWithName:@"Arial" size:18]];
    [customView addSubview:mainLabel];

    [self.navigationItem setTitleView:customView];
}

- (IBAction)showMenue:(id)sender
{
    NewPopUpmenu *options = [[NewPopUpmenu alloc] initWithNibName:@"PopupMenu" bundle:nil];
    [options.view setFrame:CGRectMake(720, 0, 300, 200)];
    [self.view addSubview:options.view];
}

Примечание: проблема в том, что когда я нажимаю на кнопку «прыжок», он не открывает свой метод выбора (showMenue:).

1 Ответ

3 голосов
/ 09 декабря 2011

Вы указываете цель nil для каждой пары цель-действие кнопки.Если ваш метод действия реализован в том же классе, ваш target должен быть self:

[btnAdd addTarget:self
           action:@selector(addCustomer:)
 forControlEvents:UIControlEventTouchUpInside];
// ...
// Same for other buttons...
// ...

Технически, если вы укажете nil для параметра target, ищется цепочка респондента.для объекта, который реагирует на действие.Возможно, проблема в том, что ваш showeMenu: метод не является сигнатурой, ожидаемой вашим действием.Действие ищет сигнатуру метода, которая выглядит следующим образом:

- (void)showeMenu:(id)sender;

Тем не менее, вы указали тип возврата IBAction в реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...