পিছনের বোতামে কীভাবে পাঠ্য পরিবর্তন করবেন


90

ডিফল্টরূপে পিছনের বোতামটি এতে একটি পাঠ্য হিসাবে একটি ভিউকন্ট্রোলারের শিরোনাম ব্যবহার করে। আমি কি ভিউ কন্ট্রোলারের শিরোনাম পরিবর্তন না করে পিছনের বোতামে পাঠ্য পরিবর্তন করতে পারি? আমার এটি দরকার কারণ আমার কাছে একটি ভিউ কন্ট্রোলার রয়েছে যা কোন শিরোনামটি প্রদর্শন করতে খুব দীর্ঘ এবং এই ক্ষেত্রে আমি ব্যাক বোতামটির ক্যাপশন হিসাবে কেবল "পিছনে" প্রদর্শন করতে চাই।

আমি নিম্নলিখিতগুলি চেষ্টা করেছিলাম যা কার্যকর হয়নি:

self.navigationItem.leftBarButtonItem.title = @"Back";

ধন্যবাদ


4
মনে রাখবেন যে পিছনে বোতামগুলির একটি কারণে শিরোনাম রয়েছে। "পিছনে" শিরোনাম পরিবর্তন করে আপনি কী বোতামটি ফিরে যায় সে সম্পর্কে তথ্যের ব্যবহারকারীকে ছিনিয়ে নিচ্ছেন।
সাইমন

উত্তর:


167

চেষ্টা করুন

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

আমি ইউআইএনএভিগেশন আইটেমের জন্য অ্যাপলের ডক্সে ব্যাকবার্ট বাটন আইটেম ডক্সটি দেখে খুঁজে পেয়েছি


4
দুঃখিত, আমার এখনই এটি পরীক্ষা করার সুযোগ নেই, তবে এটি কি অন্তর্নির্মিত ব্যাক বোতামগুলির বাম-পয়েন্টযুক্ত আকারটি প্রয়োগ করে, বা এটি ইউআইবারবারটন আইটেমের ডিফল্ট আয়তক্ষেত্রাকার আকারটি রাখে?
মার্কো

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

4
হ্যাঁ, এটা কাজ! এটি হ্যাঁ শিরোনাম পরিবর্তন করে এবং হ্যাঁ, আকারটি সংরক্ষণ করে। সাহায্য করার জন্যে ধন্যবাদ.
ইলিয়া সুজডালনিটস্কি

4
দ্রষ্টব্য: পিছনের বোতামটি দু'বার ধরে রাখা হয়েছে [বরাদ্দ থেকে 1x, সম্পত্তি ধরে রাখা থেকে 1x] তবে, আপনি যদি পিছনের বোতামটি পরিবর্তন না করেন তবে এটি কার্যকরভাবে নিরীহ।
ক্যালভিন

29
মার্কোর মন্তব্য নীচে দেখুন - আপনার নিয়ামককে এটি কল করা উচিত যা নিয়ামককে চাপ দেওয়া নয়, নতুন কিছু ধাক্কা দিতে চলেছে।
বিল

97

কোন নিয়ামক এটি প্রয়োগ করতে হবে তা বুঝতে পেরে একবার মার্ক ডব্লিউর দৃষ্টিভঙ্গি দুর্দান্ত কাজ করেছিল: যাকে পুনরায় শিরোনাম দেওয়া হচ্ছে, শীর্ষে নয়। সুতরাং এটি যদি নেভিগেশন স্ট্যাক হয়:

(bottom)  ControllerA -> ControllerB  (top)

... এবং আপনি যখন কন্ট্রোলার উপরের অংশে প্রদর্শিত হয় তখন কন্ট্রোলারএর জন্য সংক্ষিপ্ত শিরোনাম দিতে চান আপনি সম্পত্তি পরিবর্তনটি কন্ট্রোলারএ প্রয়োগ করেন ।

সুতরাং এটি self.titleঅন্যান্য বাম / ডানদিকের-বার-বোতাম সেটটারগুলির মতো নয়, এর প্রসঙ্গে আরও ।


13
এটি একটি খুব গুরুত্বপূর্ণ বিস্তারিত।
বিল

4
wcochran, এটি স্টোরিবোর্ডের সাথে কাজ করে, কেবলমাত্র আপনি প্যারেন্ট কন্ট্রোলারের পিছনে বাটন সেট করেছেন তা নিশ্চিত করুন। সুতরাং আপনার যদি কন্ট্রোলার এ থাকে যা কন্ট্রোলার বি (স্টোরিবোর্ড সেগুয়ের মাধ্যমে) নির্দেশ করে, কন্ট্রোলার বি এর পিছনে বোতামের জন্য পাঠ্য কাস্টমাইজ করার চেয়ে আপনাকে স্টোরিবোর্ড সম্পাদকের নিয়ামক এ জন্য "ব্যাক বাটন" বৈশিষ্ট্যটি সেট করতে হবে।
বাধা দিন

ধন্যবাদ মার্কো এই প্রশ্নটি সম্পর্কে আমি যা অনুভব করেছি তা হ'ল প্রত্যেকে উত্তর দেওয়ার চেষ্টা করছে (এবং উত্তরটি সঠিক) তবে যে প্রশ্নটি করা হচ্ছে তার জন্য নয়। আপনি মূলত পেরেকটি মাথার এবং সঠিকভাবে মারছেন। তার জন্য ধন্যবাদ!
theiOSguy

গুরুত্বপূর্ণ বিশদ জন্য +1। এই উত্তরটি না বুঝলে উপরের উত্তরটি আপনার পক্ষে কার্যকর হবে না understand
baptzmoffire

আপনি ঠিক বলেছেন, নতুন ম্যাকবুক ওনের কীবোর্ডটি অভ্যস্ত হওয়া কিছুটা শক্ত।
ম্যাসন জি জুইটি

48

আপনি এটি স্টোরিবোর্ডে করতে পারেন। আপনি ফিরে যেতে চান এমন ভিউ কন্ট্রোলার (দীর্ঘ শিরোনামযুক্ত একটি) সন্ধান করুন, এটি নেভিগেশন আইটেমটি নির্বাচন করুন এবং বৈশিষ্ট্য পরিদর্শক (Alt + Cmd + 4) খুলুন, কাস্টম ব্যাক বোতাম শিরোনাম sertোকান।

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


এটি ঠিক আমার প্রয়োজন ছিল যেহেতু আমি পূর্ববর্তী কন্ট্রোলারের এনএভ শিরোনামগুলির পরিবর্তে সমস্ত ব্যাক বোতামের পাঠ্য "পিছনে" রাখতে চেয়েছিলাম।
ডেভ

8
কেবল লক্ষণীয়ভাবে, পিছনের বোতামের পাঠ্যটি এমন দৃশ্যে সেট করা আছে যা পরবর্তী কন্ট্রোলার থেকে ধাক্কা খায়, আপনি বর্তমানে দেখানো ভিউ নিয়ন্ত্রণকারী নয় not
দার্বিও

এটি একটি সহজ সহজ সমাধান, তবে দয়া করে আপনার সমস্ত পিছনের বোতামগুলির নাম "পিছনে" রাখবেন না, এটি অ্যাপলের এইচআইজি-র বিরুদ্ধে যায় এবং পিছনের বোতামের উদ্দেশ্যটির অংশটিকে পরাস্ত করে। :(
স্যামুয়েল গুডউইন

দুর্দান্ত কাজ করেছেন কেবল স্টোরিবোর্ডের ফাইলটি সংরক্ষণ করতে ভুলবেন না। আমার প্রথম প্রচেষ্টাটি কার্যকর হয়নি কারণ আমি লক্ষ্য করি না যে স্টোরিবোর্ডটি সংরক্ষণ করা হয়নি! এবং হ্যাঁ, আপনি যে ভিউ কন্ট্রোলার থেকে আসছেন তার পিছনে বোতামটি পরিবর্তন করেছেন!
এরিকওয়াসটেক

খুব ভাল, তবে আমি কি কোনও পাঠ্য ছাড়াই কেবল তীর ছেড়ে যেতে চাইছি? :)
আইউরি ভ্যাসিলেনকো

40

ধন্যবাদ মার্কো ... যা আমাকে সাহায্য করেছে ...

এখানে আমি কি করেছি।

আপনি যদি কোনও টেবিল ভিউ ব্যবহার করে বিভিন্ন দর্শন নেভিগেট করতে যান ... কোডটি রাখুন:

self.navigationItem.backBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil] autorelease];

আপনার didSelectRowAtIndexPathপদ্ধতিতে ... প্রথম নিয়ন্ত্রকের ... নিয়ন্ত্রক এ।

আপনি যখন কন্ট্রোলার বি তে নেভিগেট করবেন তখন বোতামটির শিরোনাম "পিছনে" থাকবে।


4
ধন্যবাদ প্রিয় বেন আমি ঠিক তাই খুঁজছিলাম :)।
আরসলান

12

পেছনের বোতামটি প্যারেন্ট ভিউ কন্ট্রোলারের শিরোনাম থেকে এর পাঠ্যটিকে টান দেয়।

প্যারেন্ট ভিউ কন্ট্রোলারে (ভিউ কন্ট্রোলারটি যখন আপনি পিছনের বোতামটি ট্যাপ করেন তখন উপস্থিত হয়), তার পিছনে বোতামে পছন্দসই পাঠ্য হিসাবে নিজস্ব শিরোনাম সেট করুন।

উদাহরণস্বরূপ, ধরা যাক আমাদের একটি RootViewControllerক্লাস রয়েছে। যখন আমরা একটি সারণি এর টেবিল ভিউতে ক্লিক করি তখন আমরা একটি উদাহরণকে ধাক্কা দিয়ে থাকি SecondViewController। আমরা SecondViewControllerউদাহরণটির পিছনের বোতামটি "হোম" পড়তে চাই।

মধ্যে viewDidLoadপদ্ধতি RootViewController.m :

self.title = @"Home";

মধ্যে viewDidLoadপদ্ধতি SecondViewController.m :

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];
self.navigationItem.backBarButtonItem = backButton;
[backButton release];    

আপনি যদি আপনার পিছনের বোতামটি পড়তে চান তবে "পিছনে" পিতামাতার ভিউ নিয়ন্ত্রকের শিরোনামটি সেট করুন @"Back";


10

এই কাজটি আমার পক্ষে আরও ভাল। চেষ্টা করুন:

 self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] 
initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];

4
দুর্দান্ত উত্তর নিখুঁত কাজ করেছে। এটি ব্যতীত চিহ্নিত হওয়া উচিত।
মুহাম্মদ রিজওয়ান

9

আপনি যদি স্টোরিবোর্ড ব্যবহার করছেন:

  1. ওপেন স্টোরিবোর্ড
  2. ডকুমেন্টের আউটলাইন উইন্ডোতে ভিউকন্ট্রোলারটি সন্ধান করুন যেখানে আপনি ফিরে যেতে চান
  3. সেই ভিউকন্ট্রোলারের নেভিগেশন আইটেমটিতে ক্লিক করুন
  4. বৈশিষ্ট্যে এক্সপ্লোরার আপনার কাস্টম টাইলটিতে ফিরে বোতামের মানটি পরিবর্তন করে

এটাই, উপভোগ করুন ...


5

এবং মনো টাচে নিম্নলিখিত কাজগুলি (প্যারেন্ট কন্ট্রোলারের ভিউডিডলডে):

NavigationItem.BackBarButtonItem = new UIBarButtonItem( "Back", UIBarButtonItemStyle.Plain, null);


3

আপনার প্যারেন্ট ভিউ কন্ট্রোলারে, ভিউ লোড হলে পিছনে বোতামটি সেট করুন:

- (void)viewDidLoad
{
    [super viewDidLoad];

    // Do any additional setup after loading the view.
    self.navigationItem.backBarButtonItem = 
       [[UIBarButtonItem alloc] initWithTitle:@"title" 
                                        style:UIBarButtonItemStylePlain 
                                       target:nil 
                                       action:nil];

}

লক্ষ্য করুন যে আমাদের autoreleaseসর্বশেষতম আইওএস সংস্করণ সহ অন্তর্ভুক্ত করার দরকার নেই ।

আশাকরি এটা সাহায্য করবে!


1

[self.navigationController.navigationBar.backItem setTitle:@"back"];

এটা আমার জন্য কাজ করে. আপনি অন্য কিছু দিয়ে "পিছনে" প্রতিস্থাপন করতে পারেন।


কোড সহ উত্তর দেওয়ার সময় সর্বদা ব্যাখ্যা করুন যে প্রদত্ত কোডটি কী ছিল এবং আপনার কোড কীভাবে সমস্যা সমাধান করে fix
লুকাশ নুথ

1

আপনি যদি কোনও শিরোনাম না চান তবে এই আমার জন্য কাজ করেছিল!

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStylePlain target:nil action:nil];

1
self.navigationController.navigationBar.topItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil];

0

আমি শেষ পর্যন্ত জানতাম কেন এই উত্তরগুলি আমার পক্ষে প্রথমে কার্যকর হয় নি। আমি স্টোরিবোর্ডে শিরোনাম সেট করেছি। আমি কোড শিরোনাম সেট যখন। এটা কাজ করে!

self.navigationItem.title = @"Main Menu";
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@" " style:UIBarButtonItemStyleBordered target:nil action:nil];
[[self navigationItem] setBackBarButtonItem:backButton];

ভবিষ্যতে আপনি উত্তরটি মন্তব্য হিসাবে এই জাতীয় পোস্ট করতে পারেন যা আপনার পক্ষে কার্যকর হয়নি।
কিথ স্মাইল

0

আমার সমাধানটি ছিল শিরোনাম সেট করা যখন ভিউ কন্ট্রোলারটিকে নেভিগেশন স্ট্যাকের দিকে ঠেলে দেওয়া হয় এবং ভিসি বন্ধ হওয়ার আগে ডেলিগেট পদ্ধতি ব্যবহার করে এটি পুনরায় সেট করা হয়:

সুতরাং আমি যখন অন্য ভিউ কন্ট্রোলারকে এই ধরণের ধাক্কা দিই তখন আমি কলিং ভিউ কন্ট্রোলারে শিরোনাম পরিবর্তন রাখি:

self.pushedVC = [self.storyboard instantiateViewControllerWithIdentifier:@"pushedVCIdentifier"];
self.pushedVC.delegate = self;   
[self.navigationController pushViewController:self.pushedVC animated:YES];
self.title = @"Back";

এবং ডেলিগেট কলব্যাক ফাংশনে (যা আমি ভিউইলডিসাপিয়ারে অনুরোধ করি):

-(void)pushedVCWillClose:(PushedVC *)sender
{
    self.title = @"Previous Title";
}

0

আপনি যদি কেবল পিছনের বোতামের পাঠ্য পরিবর্তন করতে না চান এবং মূল বাম-তীরের আকারটি অবিরত রাখতে চান না, তবে ব্যবহারকারীরা পিছনে বোতামটি ক্লিক করলে কিছু করতে চাইলে আমি আপনাকে আমার " কাস্টমনাভিগেশন কন্ট্রোলার " এর আশেপাশে দেখার পরামর্শ দিই


0

// আপনি নীচে প্রদর্শিত হিসাবে পূর্ববর্তী ভিউ নিয়ামক মধ্যে শিরোনাম সেট করে এটি অর্জন করতে পারেন

override func viewWillAppear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for this view
        self.navigationItem.title = "My Title"

}

override func viewWillDisappear(animated: Bool) {
        super.viewWillAppear(animated)
        //Set Title for back button in next view 
        self.navigationItem.title = "Back"
}

0

পিছনে বোতামের শিরোনাম পরিবর্তন করতে, নীচের কোডটি দেখুন

InformationVC *infoController=[[InformationVC alloc]init];[self.navigationController infoController animated:YES];

//Below code changed back button title on InformationVC page.
UIBarButtonItem *backBarButton = [[UIBarButtonItem alloc] initWithTitle:@"Information" style: UIBarButtonItemStylePlain target: nil action: nil];
self.navigationItem.backBarButtonItem = backBarButton;`enter code here`

0

সুইফট 5-এ, ব্যাকবারবাটম সম্পাদনা করা যায় না। অতএব, আমাদের প্রথমে ব্যাকবারবটমটি আড়াল করতে হবে, তারপরে ব্যাকবারবটমটি প্রতিস্থাপন করতে একটি কাস্টমাইজড বামবার্বট্টম ব্যবহার করুন। এখানে বিশদ সমাধান: https://stackoverflow.com/a/63868300/13939003


-1

এটি আমার পক্ষে কাজ করেছে:

self.navigationController.navigationBar.topItem.title = "Back"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.