2012-07-27 64 views
2

它适用于ViewController,它没有标签栏,但没有标签栏。 此外,这是故事板中的第一个视图控制器。IOS右键导航栏不能正常工作

UIImage *bookmarkImage = [UIImage imageNamed:@"bookmark"]; 

//create the button and assign the image 
UIButton *bookmarkButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

//set the frame of the button to the size of the image (see note below) 
bookmarkButton.frame = CGRectMake(100, 0, bookmarkImage.size.width,  bookmarkImage.size.height); 
     [bookmarkButton setImage:bookmarkImage forState:UIControlStateNormal]; 

bookmarkButton addTarget:self action:@selector(addFavorite:) forControlEvents:UIControlEventTouchUpInside]; 
bookmarkButton.imageView.contentMode=UIViewContentModeScaleAspectFit; 

//create a UIBarButtonItem with the button as a custom view 
UIBarButtonItem *customBarItem2 = [[UIBarButtonItem alloc] initWithCustomView:bookmarkButton]; 
self.navigationItem.rightBarButtonItem = customBarItem2; 
+0

我想这个链接一直有帮助:) – dasblinkenlight 2012-07-27 19:08:35

回答

1

我有一点问题,理解你的问题,但是从我可以收集,看来你想添加的按钮,它永远类没有在UINavigationController举行。

我不知道你怎么实例化这个类(ClassX),但它应该做的事与此类似:

ClassX *temp = [[ClassX alloc] init....]; 

UINavigationController *control = [[UINavigationController alloc] initWithRootViewController:temp]; 

然后显示控件查看。

+0

是的,确切的。 +1。 – 2012-07-27 21:41:32

0

第一印象,我认为问题是由UIButton *bookmarkButton = [UIButton buttonWithType:UIButtonTypeCustom];引起的,但我不太确定。 如果你愿意,你可以像这样修改。它确实有效。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    navigationBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    UINavigationItem *navigationItem = [[[UINavigationItem alloc] initWithTitle:@"My NavigationBar"] autorelease]; 

    UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(100, 0, 70, 30)]; 

    [button setImage:[UIImage imageNamed:@"bookmark.png"] forState:UIControlStateNormal]; 
    [button addTarget:self action:@selector(buttonClicked) 
    forControlEvents:UIControlEventTouchUpInside]; 

    UIBarButtonItem *buttonItem = [[UIBarButtonItem alloc] 
            initWithCustomView:button]; 

    navigationItem.rightBarButtonItem = buttonItem; 
    [navigationBar pushNavigationItem:navigationItem animated:NO]; 
    [self.view addSubview:navigationBar]; 

    [buttonItem release]; 
    [button release]; 
}