ইউআইএনএভিগেশনবারে কীভাবে একটি বোতাম যুক্ত করবেন?


উত্তর:


294

নমুনা কোড সেট করতে rightbuttonএকটি উপর NavigationBar

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done" 
    style:UIBarButtonItemStyleDone target:nil action:nil];
UINavigationItem *item = [[UINavigationItem alloc] initWithTitle:@"Title"];
item.rightBarButtonItem = rightButton;
item.hidesBackButton = YES;
[bar pushNavigationItem:item animated:NO];

তবে সাধারণত আপনার একটি থাকে NavigationControllerযা আপনাকে লিখতে সক্ষম করে:

UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Done"
    style:UIBarButtonItemStyleDone target:nil action:nil];
self.navigationItem.rightBarButtonItem = rightButton;

1
স্টাইলটিতে আমি একটি সতর্কতা পেয়েছি: প্যারামিটার -> সতর্কতা: শব্দার্থ ইস্যু: গণনা টাইপ 'UIBarButtonSystemItem' থেকে বিভিন্ন গণনা প্রকার 'UIBarButtonItemStyle'
পোজোর

3
সতর্কতা এড়ানোর জন্য এটি ইনিউথবারবার বাটনসিসটেম আইটেম: ইউআইবারবার বাটনসিসটেম আইটেমডোন করা উচিত।
জর্দানসি

2
উদাহরণস্বরূপ, "বার" কোথা থেকে আসছে তা আমি বুঝতে পারি না। কোনও ইউআইএনএভিগেশন আইটেমের জন্য ডিফল্ট শীর্ষস্থানীয় সম্পত্তি কী?
aneuryzm

উত্তরে বার ভেরিয়েবল হ'ল এমন কোনও ন্যাভিগেশন বার যা কোনও নেভিগেশন নিয়ামক দ্বারা পরিচালিত হয় না। আপনার যদি নেভিগেশন কন্ট্রোলার থাকে তবে এটির পরিচালনার নিজস্ব একটি নেভিগেশন বার থাকে - এই ক্ষেত্রে, আপনি ন্যাভিগেশন নিয়ন্ত্রকের দিকে ধাক্কা দেন এমন প্রতিটি ভিউ কন্ট্রোলারের নিজস্ব নেভিগেশন আইটেমটি কনফিগার করা উচিত (যার মধ্যে ডানবারবার বাটন আইটেমটিকে নিজস্ব নেভিগেশন আইটেমে সেট করা অন্তর্ভুক্ত রয়েছে) সম্পত্তি)।
ভ্যাসিলি কুলকভ

বর্তমান পাঠকদের জন্য, আমি বিশ্বাস করি না যে [rightbutton release]এআরসি এর অধীনে কল করার কোনও কারণ আছে (যা এই মন্তব্যটি মূলত লেখা হয়েছিল সেই সময়ে ছিল না)।
কার্বোকেশন

20

উপরের উত্তরগুলি ভাল, তবে আমি আরও কয়েকটি টিপস দিয়ে এগুলি প্রকাশ করতে চাই:

আপনি যদি পিছনের বোতামটির শিরোনামটি পরিবর্তন করতে চান (নেভিগেশন বারের বাম দিকে তীর-ওয়াইটি দেখতে চান) আপনি এটি অবশ্যই পূর্বরূপ দেখুন নিয়ামকটিতে করতে হবে, যার জন্য এটি প্রদর্শিত হবে না। এটি "হেই বলার মতো, যদি আপনি এর থেকে উপরে অন্য ভিউ কন্ট্রোলারটিকে কখনও চাপ দেন তবে ডিফল্টের পরিবর্তে পিছনের বোতামটি" পিছনে "(বা যাই হোক না কেন) কল করুন"

আপনি যদি কোনও বিশেষ অবস্থার সময় পিছনের বোতামটি আড়াল করতে চান, যেমন কোনও ইউআইপিকারকার ভিউ প্রদর্শিত হয়, self.navigationItem.hidesBackButton = YES;আপনি বিশেষ অবস্থা ছেড়ে যাওয়ার পরে এটি আবার সেট করতে ব্যবহার করুন এবং মনে রাখবেন।

আপনি যদি বিশেষ প্রতীকী বোতামগুলির একটি প্রদর্শন করতে চান তবে এই জাতীয় initWithBarButtonSystemItem:target:actionমান সহ ফর্মটি ব্যবহার করুনUIBarButtonSystemItemAdd

মনে রাখবেন, সেই প্রতীকটির অর্থ আপনার উপর নির্ভর করে তবে হিউম্যান ইন্টারফেসের নির্দেশিকাগুলি সম্পর্কে সতর্ক থাকুন। ইউআইবারবারটন সিস্টেম আইটেম ব্যবহার করে কোনও আইটেম মোছার অর্থ সম্ভবত আপনার আবেদন বাতিল হয়ে যাবে।


11

নেভিগেশন বারে কাস্টম বোতাম যুক্ত করা হচ্ছে (বাটন আইটেমের জন্য চিত্র সহ এবং অ্যাকশন পদ্ধতি (শূন্য) ওপেনভিউ {ifying এবং নির্দিষ্ট করে।

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 32, 32);
[button setImage:[UIImage imageNamed:@"settings_b.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(openView) forControlEvents:UIControlEventTouchUpInside];

UIBarButtonItem *barButton=[[UIBarButtonItem alloc] init];
[barButton setCustomView:button];
self.navigationItem.rightBarButtonItem=barButton;

[button release];
[barButton release];

7

নীচের উদাহরণটি ডানদিকে নেভিগেশন বারে "পরিচিতি" শিরোনাম সহ একটি বোতাম প্রদর্শন করবে। এর ক্রিয়াটি ভিউকন্ট্রোলার থেকে "যোগাযোগ" নামে একটি পদ্ধতি কল করে। এই লাইনটি ছাড়া ডান বোতামটি দৃশ্যমান নয়।

    self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Contact"
                                                                          style:UIBarButtonItemStylePlain target:self action:@selector(contact:)];;

এখানে চিত্র বর্ণনা লিখুন


3

সুইফট ২-এ, আপনি এটি করবেন:

let rightButton: UIBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItemStyle.Done, target: nil, action: nil)
self.navigationItem.rightBarButtonItem = rightButton

(কোনও বড় পরিবর্তন নয়) সুইফ্ট 4/5 এ, এটি হবে:

let rightButton: UIBarButtonItem = UIBarButtonItem(title: "Done", style: UIBarButtonItem.Style.done, target: nil, action: nil)
self.navigationItem.rightBarButtonItem = rightButton

2

নিম্নলিখিতগুলি কেন ব্যবহার করবেন না: ( আইফোন নেভিগেশন বারে কাস্টম ব্যাক বোতামটি আঁকুন )

// Add left
UINavigationItem *previousItem = [[UINavigationItem alloc] initWithTitle:@"Back title"];
UINavigationItem *currentItem = [[UINavigationItem alloc] initWithTitle:@"Main Title"];
[self.navigationController.navigationBar setItems:[NSArray arrayWithObjects:previousItem, currentItem, nil] animated:YES];

// set the delegate to self
[self.navigationController.navigationBar setDelegate:self];

0

দ্রুত 3

    let cancelBarButton = UIBarButtonItem(title: "Cancel", style: .done, target: self, action: #selector(cancelPressed(_:)))
    cancelBarButton.setTitleTextAttributes( [NSFontAttributeName : UIFont.cancelBarButtonFont(),
                                                          NSForegroundColorAttributeName : UIColor.white], for: .normal)
    self.navigationItem.leftBarButtonItem = cancelBarButton


    func cancelPressed(_ sender: UIBarButtonItem ) {
        self.dismiss(animated: true, completion: nil)
    }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.