প্রোগ্রামিকভাবে নেভিগেশনবারে বোতাম যুক্ত করুন


89

হাই, আমার ডান দিকের বাটনটি নেভিগেশন বারে, প্রোগ্রামক্রমে সেট করা দরকার, যাতে আমি বোতামটি টিপলে আমি কিছু ক্রিয়া সম্পাদন করব। আমি ন্যাভিগেশন বারটি তৈরি করেছি, প্রগতিসম্পন্নভাবে;

navBar=[[UINavigationBar alloc]initWithFrame:CGRectMake(0,0,320,44) ];

একইভাবে, আমাকে এই নেভিগেশন বারের ডানদিকে বোতামটি যুক্ত করতে হবে। তার জন্য আমি ব্যবহার করেছি,

ঘ।  

    UIView* container = [[UIView alloc] init];

    // create a button and add it to the container
    UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 130, 44.01)];
    [container addSubview:button];
    [button release];

    // add another button
    button = [[UIButton alloc] initWithFrame:CGRectMake(160, 0, 50, 44.01)];
    [container addSubview:button];
    [button release];

    // now create a Bar button item
    UIBarButtonItem* item = [[UIBarButtonItem alloc] initWithCustomView:container];

    // set the nav bar's right button item
    self.navigationItem.rightBarButtonItem = item;
    [item release];

ঘ।  

    UIImage *im;
    im=[UIImage imageNamed:@"back.png"];
    [button setImage:im forState:UIControlStateNormal];
    [im release];
    backButton = [[UIBarButtonItem alloc] initWithCustomView:button];       
    [backButton setImageInsets:UIEdgeInsetsMake(0, -10,5, 5)];
    [self.navigationItem setRightBarButtonItem:backButton];

ঘ।  

    UIBarButtonItem *refreshItem = [[UIBarButtonItem alloc] initWithTitle:@"button"               style:UIBarButtonItemStylePlain target:self action:@selector(refreshLogsAction:)];
    self.navigationItem.rightBarButtonItem = refreshItem;

    [refreshItem release];

আমি এই সমস্ত উপায়ে চেষ্টা করেছি, তবে ডানদিকে বোতামটি কেউ প্রদর্শন করছে না।

উত্তর:


187

আমার UIViewControllerউত্পন্ন ক্লাসের ভিতরে, আমি নিম্নলিখিতটি ভিতরে ব্যবহার করছি viewDidLoad:

UIBarButtonItem *flipButton = [[UIBarButtonItem alloc] 
                               initWithTitle:@"Flip"                                            
                               style:UIBarButtonItemStyleBordered 
                               target:self 
                               action:@selector(flipView:)];
self.navigationItem.rightBarButtonItem = flipButton;
[flipButton release];

এটি শিরোনাম ফ্লিপ সহ ডানদিকে একটি বোতাম যুক্ত করে, যা পদ্ধতিটিকে কল করে:

-(IBAction)flipView

এটি আপনার # 3 এর মতো দেখতে খুব বেশি লাগে তবে এটি আমার কোডের মধ্যে কাজ করছে।


আমাকে নির্বাচকটিতে একটি কোলন যুক্ত করার দরকার ছিল - "ক্রিয়া: @ নির্বাচক (ফ্লিপভিউ :)];
রাইডেল

22
UIImage* image3 = [UIImage imageNamed:@"back_button.png"];
CGRect frameimg = CGRectMake(15,5, 25,25);

UIButton *someButton = [[UIButton alloc] initWithFrame:frameimg];
[someButton setBackgroundImage:image3 forState:UIControlStateNormal];
[someButton addTarget:self action:@selector(Back_btn:)
     forControlEvents:UIControlEventTouchUpInside];
[someButton setShowsTouchWhenHighlighted:YES];

UIBarButtonItem *mailbutton =[[UIBarButtonItem alloc] initWithCustomView:someButton];
self.navigationItem.leftBarButtonItem =mailbutton;
[someButton release];

///// বলা হয় ইভেন্ট

-(IBAction)Back_btn:(id)sender
{
    //Your code here
}

সুইফট:

var image3 = UIImage(named: "back_button.png")
var frameimg = CGRect(x: 15, y: 5, width: 25, height: 25)

var someButton = UIButton(frame: frameimg)
someButton.setBackgroundImage(image3, for: .normal)
someButton.addTarget(self, action: Selector("Back_btn:"), for: .touchUpInside)
someButton.showsTouchWhenHighlighted = true

var mailbutton = UIBarButtonItem(customView: someButton)
navigationItem?.leftBarButtonItem = mailbutton

func back_btn(_ sender: Any) {
    //Your code here
}

10

নেভিগেশন বারে অনুসন্ধান বোতাম যুক্ত করতে এই কোডটি ব্যবহার করুন:

 UIBarButtonItem *searchButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSearch target:self action:@selector(toggleSearch:)];
self.navigationController.navigationBar.topItem.rightBarButtonItem = searchButton;

এবং নিম্নলিখিত পদ্ধতি বাস্তবায়ন:

- (IBAction)toggleSearch:(id)sender
{
    // do something or handle Search Button Action.
}

আপনার সমাধানের জন্য অনেক ধন্যবাদ। শীর্ষস্থানীয় আইটেমটি আমি হারিয়ে যাচ্ছিলাম
কুণাল গুপ্ত

6

কীভাবে সুইবারে নববারে একটি অ্যাড বোতাম যুক্ত করবেন:

self.navigationItem.rightBarButtonItem = UIBarButtonItem(barButtonSystemItem: .Add, target: self, action: "onAdd:")

অন ​​অ্যাড:

func onAdd(sender: AnyObject) {
}

6
self.navigationItem.rightBarButtonItem=[[[UIBarButtonItem alloc]initWithTitle:@"Save" style:UIBarButtonItemStylePlain target:self action:@selector(saveAction:)]autorelease];

-(void)saveAction:(UIBarButtonItem *)sender{

//perform your action

}

5

সুইফ্ট সংস্করণ, এটিকে দ্যডডলডে যুক্ত করুন:

var doneButton = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Plain, target: self, action: "doneButton:")
navigationItem.rightBarButtonItem = doneButton

এবং এটি আপনার দেখুন নিয়ন্ত্রক শ্রেণিতে class

func doneButton(sender: UIBarButtonItem) {
    println(111)
}

4

নিম্নলিখিত কোড ব্যবহার করুন:

UIBarButtonItem *customBtn=[[UIBarButtonItem alloc] initWithTitle:@"Custom" style:UIBarButtonItemStylePlain target:self action:@selector(customBtnPressed)];
[self.navigationItem setRightBarButtonItem:customBtn];

3

সরলভাবে নেটিভ এডিট বারবার বাটন ব্যবহার করুন

self.navigationItem.rightBarButtonItem = self.editButtonItem;
[self.navigationItem.rightBarButtonItem setAction:@selector(editBarBtnPressed)];

এবং তারপর

- (void)editBarBtnPressed {
    if ([infoTable isEditing]) {
        [self.editButtonItem setTitle:@"Edit"];
        [infoTable setEditing:NO animated:YES];
    }
    else {
        [self.editButtonItem setTitle:@"Done"];
        [infoTable setEditing:YES animated:YES];
    }
}

আনন্দ কর...!!!


3

ViewController.m এর ViewDidLoad পদ্ধতিতে

UIBarButtonItem *cancel = [[UIBarButtonItem alloc] initWithTitle:@"Cancel" style:UIBarButtonItemStyleBordered target:self action:@selector(back)];

[self.navigationItem setLeftBarButtonItem:cancel];

"(ফিরে)" নির্বাচক হ'ল বর্তমান ভিউকন্ট্রোলারকে বিচ্ছিন্ন করার একটি পদ্ধতি


3

এটি চেষ্টা করুন। এটা আমার জন্য কাজ। প্রোগ্রামিং হিসাবে নেভিগেশন বারে বোতাম যুক্ত করুন , এছাড়াও আমরা নেভিগেশন বার বোতামে চিত্র সেট করি,

নীচে কোডটি দেওয়া হল: -

  UIBarButtonItem *Savebtn=[[UIBarButtonItem alloc]initWithImage:
  [[UIImage imageNamed:@"bt_save.png"]imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] 
  style:UIBarButtonItemStylePlain target:self action:@selector(SaveButtonClicked)];
  self.navigationItem.rightBarButtonItem=Savebtn;

  -(void)SaveButtonClicked
  {
    // Add save button code.
  }

1

আপনি যদি নেভিগেশনবারে একটি বারবুটন আইটেম কিন্তু সরল বোতামের সন্ধান না করেন তবে নীচের কোডটি কাজ করে:

UIButton *aButton = [UIButton buttonWithType:UIButtonTypeCustom];
[aButton setBackgroundImage:[UIImage imageNamed:@"NavBar.png"] forState:UIControlStateNormal];
[aButton addTarget:self
            action:@selector(showButtonView:)
  forControlEvents:UIControlEventTouchUpInside];
aButton.frame = CGRectMake(260.0, 10.0, 30.0, 30.0);
[self.navigationController.navigationBar addSubview:aButton];

-1

সবাইকে অভিবাদন !! আমি ইস্যুটির সমাধানটি হাতে পেয়েছি যেখানে দুটি UIInterface অভিমুখগুলি ইউআইআইআইএমএজপিকার ব্যবহার করতে চাইছে .. আমার ভিউকন্ট্রোলারে যেখানে আমি ইউআইআইমেজপিকার কনট্রোলারের সাথে সিগ পরিচালনা করি

** আমি একটি ব্যবহার করি ..

-(void) editButtonPressed:(id)sender {
   BOOL editPressed = YES;
    NSUserDefaults *boolDefaults = [NSUserDefaults standardUserDefaults];
    [boolDefaults setBool:editPressed forKey:@"boolKey"];
    [boolDefaults synchronize];

    [self performSegueWithIdentifier:@"photoSegue" sender:nil]; 

}

**

তারপরে অ্যাপডেলিগেট ক্লাসে আমি নিম্নলিখিতটি করি।

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {

    BOOL appDelBool;
    NSUserDefaults *boolDefaults = [NSUserDefaults standardUserDefaults];
    appDelBool = [boolDefaults boolForKey:@"boolKey"];

       if (appDelBool == YES)
           return (UIInterfaceOrientationMaskPortrait);
        else
            return UIInterfaceOrientationMaskLandscapeLeft;
}

দুঃখিত কি প্রশ্ন ছিল !! : পি
শ্যাড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.