0

barbuttonitem を xcode proj に追加しようとしましたが、最終的にビュー コントローラーを使用して表示され、ビューにコードを配置するとセクションが読み込まれましたが、アクションを接続できません...私は常にインターフェイス ビルダーと IBOutlets を使用してきましたが、それはタブバーコントローラーを機能させるには、このナビゲーションコントローラーをプログラムで配置する必要があるため、オプションではありません

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    //add navbar buttons progamatically b/c nothing to use in xibs...
    UIBarButtonItem * popbutt = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(apopbuttonPressed:)];

    UINavigationItem * navigItem = [[UINavigationItem alloc]initWithTitle:@"Scribbler"];
    navigItem.rightBarButtonItem = popbutt;
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

これは、IBOutlet とインターフェイス ビルダーを使用せずにアクションをまとめようとする私の最初の試みであるため、目標は FPPopover を使用し、押されたときにナビゲーション バー ボタン項目にポップオーバーを表示させることです。

-(void)apopbuttonPressed
{
    //the controller we want to present as popover
    ScribblePopoverViewController * controller = [[ScribblePopoverViewController alloc] initWithStyle:UITableViewStylePlain];
    controller.delegate = self;
    apop = [[FPPopoverController alloc] initWithViewController:controller];

    //apop.arrowDirection = FPPopoverArrowDirectionAny;
    apop.tint = FPPopoverDefaultTint;

    if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        apop.contentSize = CGSizeMake(300, 500);
    }
    else {
        apop.contentSize = CGSizeMake(200, 300);
    }

    apop.arrowDirection = FPPopoverArrowDirectionAny;

    //sender is the UIButton view
    // idk  [apop presentPopoverFromView:];
}
4

1 に答える 1

0

セレクターを「apopbuttonPressed:」に設定します<-エンディング:パラメーターが必要であることを示します

代わりに、メソッドはパラメータなしで「apopbuttonPressed」になります。

だから試してみてください

action:@selector(apopbuttonPressed)

またはメソッドをに変更します

apopbuttonPressed:(id) sender

編集:これが機能するコードスニペットです:

これは私のコードであり、正常に機能します。

- (void)viewDidLoad {
    [super viewDidLoad];

    UIBarButtonItem * popbutt = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(apopbuttonPressed:)];

    self.navigationItem.rightBarButtonItem = popbutt;
}

- (void) apopbuttonPressed:(id) sender
{
    NSLog(@"pressed");
}
于 2013-02-26T21:09:07.670 に答える