প্রোগ্রাম থেকে ইউআইএনএভিগেশনবারে কীভাবে একটি বোতাম যুক্ত করবেন?
প্রোগ্রাম থেকে ইউআইএনএভিগেশনবারে কীভাবে একটি বোতাম যুক্ত করবেন?
উত্তর:
নমুনা কোড সেট করতে 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;
[rightbutton release]
এআরসি এর অধীনে কল করার কোনও কারণ আছে (যা এই মন্তব্যটি মূলত লেখা হয়েছিল সেই সময়ে ছিল না)।
উপরের উত্তরগুলি ভাল, তবে আমি আরও কয়েকটি টিপস দিয়ে এগুলি প্রকাশ করতে চাই:
আপনি যদি পিছনের বোতামটির শিরোনামটি পরিবর্তন করতে চান (নেভিগেশন বারের বাম দিকে তীর-ওয়াইটি দেখতে চান) আপনি এটি অবশ্যই পূর্বরূপ দেখুন নিয়ামকটিতে করতে হবে, যার জন্য এটি প্রদর্শিত হবে না। এটি "হেই বলার মতো, যদি আপনি এর থেকে উপরে অন্য ভিউ কন্ট্রোলারটিকে কখনও চাপ দেন তবে ডিফল্টের পরিবর্তে পিছনের বোতামটি" পিছনে "(বা যাই হোক না কেন) কল করুন"
আপনি যদি কোনও বিশেষ অবস্থার সময় পিছনের বোতামটি আড়াল করতে চান, যেমন কোনও ইউআইপিকারকার ভিউ প্রদর্শিত হয়, self.navigationItem.hidesBackButton = YES;
আপনি বিশেষ অবস্থা ছেড়ে যাওয়ার পরে এটি আবার সেট করতে ব্যবহার করুন এবং মনে রাখবেন।
আপনি যদি বিশেষ প্রতীকী বোতামগুলির একটি প্রদর্শন করতে চান তবে এই জাতীয় initWithBarButtonSystemItem:target:action
মান সহ ফর্মটি ব্যবহার করুনUIBarButtonSystemItemAdd
মনে রাখবেন, সেই প্রতীকটির অর্থ আপনার উপর নির্ভর করে তবে হিউম্যান ইন্টারফেসের নির্দেশিকাগুলি সম্পর্কে সতর্ক থাকুন। ইউআইবারবারটন সিস্টেম আইটেম ব্যবহার করে কোনও আইটেম মোছার অর্থ সম্ভবত আপনার আবেদন বাতিল হয়ে যাবে।
নেভিগেশন বারে কাস্টম বোতাম যুক্ত করা হচ্ছে (বাটন আইটেমের জন্য চিত্র সহ এবং অ্যাকশন পদ্ধতি (শূন্য) ওপেনভিউ {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];
নীচের উদাহরণটি ডানদিকে নেভিগেশন বারে "পরিচিতি" শিরোনাম সহ একটি বোতাম প্রদর্শন করবে। এর ক্রিয়াটি ভিউকন্ট্রোলার থেকে "যোগাযোগ" নামে একটি পদ্ধতি কল করে। এই লাইনটি ছাড়া ডান বোতামটি দৃশ্যমান নয়।
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Contact"
style:UIBarButtonItemStylePlain target:self action:@selector(contact:)];;
সুইফট ২-এ, আপনি এটি করবেন:
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
নিম্নলিখিতগুলি কেন ব্যবহার করবেন না: ( আইফোন নেভিগেশন বারে কাস্টম ব্যাক বোতামটি আঁকুন )
// 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];
দ্রুত 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)
}