2009-02-19 17 views
26

पर बाएं बटन जोड़ना मैंने एक नया नेविगेशन आधारित आईफोन ऐप बनाया है। मैंने इसे रूट व्यू कंट्रोलर में जोड़ा।UINavigationBar (iPhone)

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] init]; 
self.navigationItem.leftBarButtonItem = addButton; 
self.navigationItem.leftBarButtonItem.enabled = YES; 
} 

हालांकि कोई बायां बटन प्रदर्शित नहीं होता है। क्या मुझे कुछ करने की ज़रूरत है?

उत्तर

53

आप परिभाषित नहीं करते कि वास्तव में बटन क्या करता है। ,

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelEdit:)]; 

cancelEdit:, चयनकर्ता वर्तमान वर्ग (स्वयं) में है और के रूप में परिभाषित किया गया है: यह मेरा app से एक पंक्ति है

- (void) cancelEdit: (id) sender; 
+1

बहुत बढ़िया, धन्यवाद। आप विभिन्न चयनकर्ता कहां उपलब्ध हैं? डॉक्टर इस बारे में बहुत अस्पष्ट है। मैंने एक इंस्टेंस विधि परिभाषित की है और इसे चयनकर्ता के रूप में रखा है लेकिन इसे कभी निष्पादित नहीं किया गया था। जब बटन क्लिक किया जाता है तो मैं एक विवरण में स्लाइड करना चाहता हूं। – 4thSpace

+1

चयनकर्ता वर्ग में परिभाषित किया गया है (मैंने इसे मेरे उत्तर में जोड़ा है)। –

+0

मुझे यह भी पता चला है कि आईबी के माध्यम से इसे कैसे किया जाए। इसे नेविगेशन आइटम के रूप में जोड़ा गया है लेकिन रूटव्यू कंट्रोलर.एक्सिब के माध्यम से नहीं है जहां टेबलव्यू है। इसे MainWindow.xib में जोड़ा जाना है। – 4thSpace

11

इस सवाल पर:

बहुत बढ़िया, धन्यवाद। आपको विभिन्न चयनकर्ता कहां मिलते हैं? दस्तावेज़ इस बारे में बहुत अस्पष्ट है। मैंने इंस्टेंस विधि को परिभाषित किया है और इसे चयनकर्ता के रूप में रखा है लेकिन इसे कभी निष्पादित नहीं किया गया था। जब मैं बटन क्लिक करता हूं तो मैं एक विवरण में स्लाइड करना चाहता हूं। - 4thSpace फ़रवरी 19 16:19

पर मैं जगह है जहाँ मैं अधिक जानकारी की जरूरत है और भागने (ESC) कुंजी दबाएँ जाना। तो, इस उदाहरण में:

...(beginning of line)... @selector(Place Cursor Here, press Esc) ...

उपलब्ध चयनकर्ताओं की एक सूची दिखाई देगी। माइक्रोसॉफ्ट प्रोग्रामर के लिए, यह इंटेलिजेंस की तरह है, लेकिन आपको इसे एसीसी के साथ पूछना है (यह केवल विजुअल स्टूडियो में दिखाई नहीं देता है)। व्यावहारिक रूप से बोलते हुए, XCode जब भी आप टाइप करना शुरू करते हैं तो आप जो भी बनाने की कोशिश कर रहे हैं, उतना अधिक बनाता है और जब आप टैब कुंजी को समझते हैं तो यह वास्तव में मदद करता है। (ठीक है ... यह मेरी दोस्त है ... अकेला जीवन मैं केवल सहायता की जरूरत)

अब, अगर आप अपने खुद के चयनकर्ता की जरूरत है, तो आप (mySelector: उदाहरण के लिए) वहाँ में अपने लेबल जगह कर सकते हैं, तो , इसके अलावा

- (IBAction)mySelector:(id)sender {
NSLog(@"You touched me THERE!");
}

हैडर (ज) फ़ाइल में, सुनिश्चित हो एक इसी डाल करने के लिए:, आगे अपने कोड में नीचे, इसे बनाने

-(IBAction) mySelector:(id)sender;

+0

भागने की कुंजी युक्ति के लिए धन्यवाद! मुझे इसके बारे में ही ख्याल आ रहा था। :) – Helephant

+0

बीटीडब्ल्यू - कंट्रोल-कॉमा एक ऐसी सूची पेश करेगी जिसे आप स्क्रॉल कर सकते हैं। – mobibob

+0

कभी नहीं - मैंने अभी ईएससी की कोशिश की है और यह मेरे कंट्रोल-कॉमा के समान है और एक * बहुत * जल्दी हिट करने के लिए आसान है! आपकी टिप्पणी बेहतर है ... :) – mobibob

13

वास्तव में एक और जवाब है, जो यहां सूचीबद्ध नहीं है, लेकिन कई मामलों में बहुत उपयोगी हो सकता है। यदि आप do not want to use UINavigationController, तो self.navigationItem आपके लिए कोई विकल्प नहीं है।

UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"imageName"] style:UIBarButtonItemStyleBordered target:self action:@selector(action:)]; 
UINavigationItem *navigationItem = [[UINavigationItem alloc] initWithTitle:@"Bar Title"]; 
navigationItem.leftBarButtonItem = barButton; 
[navigationBar pushNavigationItem:navigationItem animated:NO]; 

आप चाहते हो सकता है कि बार और बटन के साथ हल्के UIViewController बनाने, लेकिन नेविगेशन अतिरिक्त व्यय नहीं चाहते हैं।