0

NavigationItem と BarButtonItem を作成し、items.leftBarButtonItem を使用して追加し、@selector を使用して対処する baritem のアクションは問題なく準拠できますが、buttonitem に触れるとクラッシュします..セレクターが原因である可能性があります。構成ファイルで ARC を閉じると、右に曲がる ...なぜ? 私は ARC と混同していました。

@implementation IGMainViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 340, 44)];

    UINavigationItem  *items = [[UINavigationItem alloc] init];
    UIBarButtonItem  *leftBtn = [[UIBarButtonItem alloc] initWithTitle:@"aa" style:UIBarButtonSystemItemAdd target:self action:@selector(doItAgain:)];
    items.leftBarButtonItem = leftBtn;
    [navBar pushNavigationItem:items animated:NO];
    [self.view addSubview:navBar];
}
-(void)doItAgain:(id)sender
{
    NSLog(@"sss");
}
- (void)viewDidUnload
{
    [super viewDidUnload];
    // Release any retained subviews of the main view.
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}

//修正版:

    //old:
    IGMainViewController *mview = [[IGMainViewController alloc] init];
    [self.view addSubview:mview.view];
    //fixed:
    @property(strong,nonatomic) IGMainViewController *mview;
4

1 に答える 1

2

@selector(doItAgain)doItAgain メソッドはパラメーターをとらないのに対し、あなたのメソッドは 1 をとることを意味します。この問題を修正するには、セレクター名にコロンを追加します。@selector(doItAgain:)

于 2012-09-20T00:20:38.393 に答える