Kundan
Kundan

Reputation: 3082

How to add button to navigation controller

Here is my code..I am unable to add a button in my navigation controller.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    UIViewController *viewController1, *viewController2, *viewController3,*viewController4;

    viewController1 = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
    viewController2 = [[DisplayAllImagesController alloc] initWithNibName:@"DisplayAllImagesController" bundle:nil];
    viewController3 = [[EmptyView alloc] initWithNibName:@"EmptyView" bundle:nil];
    viewController4 = [[ListView alloc] initWithNibName:@"ListView" bundle:nil];



    self.tabBarController = [[UITabBarController alloc] init];
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:viewController2, viewController1, viewController3, viewController4, nil];
    self.tabBarController.title = @"Title";

    self.navController = [[UINavigationController alloc]
                          initWithRootViewController:self.tabBarController];
    self.window.rootViewController = self.navController;
    [self.window makeKeyAndVisible];
    return YES;
}

So,please let me know how i can add button to navigation controller...please...

Upvotes: 3

Views: 8076

Answers (5)

nsgulliver
nsgulliver

Reputation: 12671

//create the button and assign the image UIImage *buttonImage = [UIImage imageNamed:@"button.png"];

UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeCustom];

[rightButton setFrame:CGRectMake(280,7,buttonImage.size.width,buttonImage.size.height)];
[rightButton setBackgroundImage:buttonImage forState:UIControlStateNormal];
rightButton.titleLabel.font = [UIFont boldSystemFontOfSize:12];
[rightButton setTitle:@"Right" forState:UIControlStateNormal];

// add image view
[self.navigationController.navigationBar addSubview:rightButton];

[self.navigationController.navigationBar bringSubviewToFront:rightButton];


//create a UIBarButtonItem with the button as a custom view
UIBarButtonItem *customBarDone = [[UIBarButtonItem alloc] initWithCustomView:rightButton];
self.navigationItem.rightBarButtonItem = customBarDone;
[rightButton addTarget:self action:@selector(yourSelector:) forControlEvents:UIControlEventTouchUpInside];

Upvotes: 1

Shekhar Gupta
Shekhar Gupta

Reputation: 6218

Try this:

UIButton *customButton = [UIButton alloc] initWithFrame:CGRectMake(0, 0, 50,30)];

UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithCustomView:customButton];
self.navigationItem.rightBarButtonItem = closeButton; 

Upvotes: 3

Chu Chau
Chu Chau

Reputation: 70

UIButton* btn =[UIButton alloc] init]; .... self.navController.view addsubview:btn];

Upvotes: 0

Paras Joshi
Paras Joshi

Reputation: 20551

just add this bellow code in your ViewController's viewDidLoad: method...

UIBarButtonItem *btnReload = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(btnReloadPressed:)];
self.navigationController.topViewController.navigationItem.rightBarButtonItem = btnReload;
btnReload.enabled=TRUE;
btnReload.style=UIBarButtonSystemItemRefresh;

Upvotes: 7

ganesh manoj
ganesh manoj

Reputation: 977

if you want custom button we can use this

UIButton *myButton1 = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton1 setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
myButton1.showsTouchWhenHighlighted = YES;
myButton1.frame = CGRectMake(0.0, 3.0, 50,30);

[myButton1 addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:myButton1];
self.navigationItem. rightBarButtonItem = rightButton;

Upvotes: 2

Related Questions