2010-10-02 10 views
14

मैं तीर वास्तव में बिना एक UIPopoverController बनाने के लिए मैं कुछ इस तरह अनुकरण करने के लिए चाहते हैं जानना चाहूंगा: Screenshot of the set-passcode screen from the iPad's System Preferencesयूआईपीओपीओवर नियंत्रक तीरों के बिना?

देखें कि

  • कोई तीर नहीं है

  • वहाँ एक ऐसा शीर्षक है जो किसी भी तरह यूआईपीओवर कंट्रोलर की विस्तारित शीर्ष सीमा के अंदर है और इसके अंदर सामान्य यूआईपीओवर कंट्रोलर की तरह नहीं है।

मुझे लगता है यह वास्तव में एक UIPopoverController वस्तु नहीं है, लेकिन मैं कैसे मैं एक ही प्रभाव बना सकते हैं पर सलाह की सराहना करेंगे (CoreGraphics का उपयोग कर? -> 3 डी बकाया सीमा के विशेष रूप से पारदर्शी नीचा प्रभाव) और/या लिंक कुछ स्रोतों के लिए अगर किसी ने पहले यह किया है।

अग्रिम धन्यवाद।

इग्नेसियो

संपादित करें:

मैं अभी भी इस सामान के लिए देख रहा हूँ और महसूस किया कि तीसरे पक्ष के क्षुधा में भी एक उदाहरण का इस्तेमाल किया जा रहा है: iPad के लिए twitterrific के रूप में इस तस्वीर में देखा। कोई भी कृपया? पॉपओवर कंट्रोलर के अंदर शीर्षक डालना सिर्फ बदसूरत है। alt text

उत्तर

4

जबकि इस बात के लिए कि क्या एप्पल कि एक तीर के बिना एक पॉपओवर बनाने क्षुधा को स्वीकृति दे देंगे कुछ सवाल है, तो आप इस post regarding arrows और इस post regarding modal views की जाँच कर सकते हैं।

+0

मुझे नहीं लगता कि कोई तीर प्रस्तुत नहीं होने पर कोई समस्या है। आपके द्वारा सुझाए गए लिंक के रूप में, विकल्प सही है? ;) लेकिन मुझे अभी भी चित्रों की तरह पॉपओवर कंट्रोलर में शीर्षक डालने का तरीका नहीं मिला है। मैंने UIViewController की शीर्षक संपत्ति को आजमाया है लेकिन काम नहीं कर रहा है। – nacho4d

+0

मुझे यहां समाधान मिला: http://stackoverflow.com/questions/2617409/setting-the-title-of-a-uipopovercontroller – nacho4d

1

एक शीर्षक आप की तरह आप एक अलग विंडो बनाना होगा और फिर पॉपओवर में उस दृश्य लोड एक अलग दृश्य बनाने की आवश्यकता के साथ एक पॉपओवर बनाने के लिए।

19

नीचे दी गई विधि मेरे लिए ठीक काम करता है (iOS7 शामिल)

[popoverController presentPopoverFromRect:CGRectMake(0, 0, 20, 20) 
            inView:self.view 
        permittedArrowDirections:NULL 
            animated:YES]; 
+2

+1, लेकिन मोनो टच के लिए, uint का उपयोग करें। "NULL" के बजाय MinValue को हटाने के लिए तीर –

1

शीर्ष सीमा पॉपओवर और प्रस्तुत दृश्य नियंत्रक के बीच एक नेविगेशन नियंत्रक रखने द्वारा निर्मित है।

दूसरे शब्दों में, पॉपओवर एक नेविगेशन नियंत्रक प्रस्तुत करता है और नेविगेशन नियंत्रक के रूट दृश्य नियंत्रक आपके विचार नियंत्रक को तैयार है। यह शीर्षक पट्टी का उत्पादन करता है और आपको [self setTitle:@"My Title"] के साथ शीर्षक सेट करने और नेविगेशन बटन जोड़ने की अनुमति देता है।

1

आप एक UINavigationController का उपयोग कर, और नेविगेशन नियंत्रक से UIViewControllers जोड़कर एक शीर्षक जोड़ सकते हैं। शीर्षक प्रकट करने के लिए UIViewController की 'शीर्षक' विशेषता सेट करें।

कुछ सुझावों के अनुसार तीर दिशा को NULL पर सेट करना, अप्रत्याशित व्यवहार का परिणाम हो सकता है, क्योंकि विधि इस चर का उपयोग करती है ताकि यह पता लगाया जा सके कि आपके बार बटन आइटम या आयत के सापेक्ष पॉपअप को कैसे उन्मुख किया जाए।

यह UIPopoverBackgroundView उपवर्ग, और (केवल iOS5 और ऊपर) तीर के लिए 0 वापस जाने के लिए विभिन्न तीर वापसी तरीकों सेट करने के लिए बेहतर है।

http://blog.teamtreehouse.com/customizing-the-design-of-uipopovercontroller

सरल कार्यान्वयन उदाहरण (MyCustomPopoverBGView इस उदाहरण में UIPopoverBackgroundView के उपवर्ग है): कैसे ठीक से इस उपवर्ग के लिए इस उदाहरण देखें

UIViewController *vCtrlr = [[UIViewController alloc] initWithNibName:nil bundle:nil]; 
vCtrlr.title = @"My Title"; 
self.navCtrlr = [[UINavigationController alloc] initWithRootViewController:vCtrlr]; 
self.popCtrlr = [[UIPopoverController alloc] initWithContentViewController:_navCtrlr]; 
_popCtrlr.popoverBackgroundViewClass = [MyCustomPopoverBGView class]; 
      [_popCtrlr presentPopoverFromRect:CGRectMake(0, 
                 0, 
                 320, 
                 150) 
             inView:self permittedArrowDirections:UIPopoverArrowDirectionUp animated:YES]; 
0

बस कॉपी & नीचे कोड पेस्ट करें

UIViewController *popovercontroller=[[UIViewController alloc] init]; 
UIView *popoverView=[[UIView alloc] initWithFrame:CGRectMake(312,390, 400, 344)]; 
popoverView.backgroundColor=[UIColor whiteColor]; 

popovercontroller.contentSizeForViewInPopover=CGSizeMake(400, 300); 



UIDatePicker *pickerView = [[UIDatePicker alloc] initWithFrame:CGRectMake(0, 44, 400, 0)]; 
[pickerView setTintColor:[UIColor blackColor]]; 
[pickerView addTarget:self action:@selector(dueDateChanged:) forControlEvents:UIControlEventValueChanged]; 

pickerView.datePickerMode = UIDatePickerModeDate; 
pickerView.hidden = NO; 
NSString *bs ; //= [NSString alloc]; 
// //NSDate *newDate = [NSData alloc]; 
bs = CurrentSelectedDate; 
if (bs.length >= 1) { 
    NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init] ; 
    //  //[dateFormatter setDateStyle:NSDateFormatterLongStyle]; 
    //  [dateFormatter setTimeStyle:NSDateFormatterNoStyle]; 
    [dateFormatter setDateFormat:@"dd-MMM-yyyy"]; 
    // NSDate *myDate = [dateFormatter dateFromString: txtText.text]; 
    pickerView.date = [dateFormatter dateFromString: CurrentSelectedDate]; 

} 
else 
{ 
    pickerView.date = [NSDate date]; 
} 
[popoverView addSubview:pickerView]; 



// pickerView.date = [dateFormatter dateFromString:txtText.text]; 
UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 400, 44)]; 
pickerToolbar.barStyle = UIBarStyleDefault; 
pickerToolbar.barTintColor=[UIColor colorWithRed:150.0f/255.0f green:91.0f/255.0f blue:129.0f/255.0f alpha:1.0f]; 

[pickerToolbar sizeToFit]; 
self.navigationController.toolbar.barTintColor = [UIColor colorWithRed:150.0f/255.0f green:91.0f/255.0f blue:129.0f/255.0f alpha:1.0f]; 
NSMutableArray *barItems = [[NSMutableArray alloc] init]; 

UIBarButtonItem *flexSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil]; 
[barItems addObject:flexSpace]; 

UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneButtonPressed:)]; 
doneBtn.tintColor=[UIColor whiteColor]; 
[barItems addObject:doneBtn]; 

UIBarButtonItem *cancelBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelButtonPressed:)]; 
cancelBtn.tintColor=[UIColor whiteColor]; 
[barItems addObject:cancelBtn]; 

[pickerToolbar setItems:barItems animated:YES]; 


[popoverView addSubview:pickerToolbar]; 
popovercontroller.view=popoverView; 

pickerViewPopup = [[UIPopoverController alloc] initWithContentViewController:popovercontroller]; 

[pickerViewPopup presentPopoverFromRect:CGRectMake(312, 212, 400, 344) inView:self.view permittedArrowDirections:0 animated:YES]; 
4

पास 0 से permittedArrowDirections विशेषता।

[popoverController presentPopoverFromRect:YOUR_RECT 
            inView:self.view 
        permittedArrowDirections:0 
            animated:YES];