Question

How to show a pop up window when the user clicks on the particular field in my table view. It should pop a window ant it should display the user contact information. I do not want to use navigationbar controller here. Kindly help me

Was it helpful?

Solution

if you want to display less details then you can use following option. declare below code in .h file

UIWindow *alertWindow;

Write following code in .m file.

    alertWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // you must release the window somewhere, when you do not need it anymore
    alertWindow.windowLevel = UIWindowLevelAlert; // puts it above the status bar
    alertWindow.backgroundColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.5];
    /*CUSTOM VIEW obj*/.center = CGPointMake(alertWindow.frame.size.width/2, alertWindow.frame.size.height/2);
    [alertWindow addSubview:/*PUT YOUR CUSTOM VIEW HERE*/];
    [alertWindow setHidden:NO];

this code is display you custom view like UIAlertView.

you put above code in UITableView Delegate method.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {}

For hide window

[alertWindow setHidden:YES];
[alertWindow release]; alertWindow = nil;

OTHER TIPS

I have written code of UIPopOverController with DatePicker as a example for you. just refer this example and set according your need

   -(IBAction)tDriveBtnPressed:(id)sender
{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.dateStyle = NSDateFormatterMediumStyle;
    txtDate.text = [NSString stringWithFormat:@"%@",
                    [df stringFromDate:[NSDate date]]];
    [df release];

    UIToolbar *pickerToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 300, 44)];
    pickerToolbar.barStyle = UIBarStyleBlackOpaque;
    [pickerToolbar sizeToFit];
    NSMutableArray *barItems = [[NSMutableArray alloc] init];
    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(pickerDone:)];
    [barItems addObject:doneBtn];
    [doneBtn release];
    [pickerToolbar setItems:barItems animated:YES];
    [barItems release];

    datePicker = [[UIDatePicker alloc] init];
    datePicker.datePickerMode = UIDatePickerModeDate;

    CGRect pickerRect = datePicker.bounds;
    datePicker.bounds = pickerRect;

    UIViewController* popoverContent = [[UIViewController alloc] init];
    UIView* popoverView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 344)];
    popoverView.backgroundColor = [UIColor whiteColor];

    datePicker.frame = CGRectMake(0, 44, 320, 300);
    [datePicker addTarget:self action:@selector(dateChange:) forControlEvents:UIControlEventValueChanged];
    [popoverView addSubview:pickerToolbar];
    [popoverView addSubview:datePicker];
    popoverContent.view = popoverView;

    //resize the popover view shown
    //in the current view to the view's size
    popoverContent.contentSizeForViewInPopover = CGSizeMake(320, 244);

    //create a popover controller
    popoverController = [[UIPopoverController alloc] initWithContentViewController:popoverContent];
    CGRect popoverRect = [self.view convertRect:[tDriveBtn frame] 
                                       fromView:[tDriveBtn superview]];

    popoverRect.size.width = MIN(popoverRect.size.width, 100) ; 
    popoverRect.origin.x  = popoverRect.origin.x; 
    // popoverRect.size.height  = ; 

    [popoverController 
     presentPopoverFromRect:popoverRect
     inView:self.view 
     permittedArrowDirections:UIPopoverArrowDirectionAny
     animated:YES];


    //release the popover content
    [popoverView release];
    [popoverContent release];

}
-(void)dateChange:(id)sender
{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.dateStyle = NSDateFormatterMediumStyle;
    txtDate.text= [NSString stringWithFormat:@"%@",
                   [df stringFromDate:datePicker.date]];
    [df release];
}
- (void)pickerDone:(id)sender
{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    df.dateStyle = NSDateFormatterMediumStyle;
    txtDate.text= [NSString stringWithFormat:@"%@",
                   [df stringFromDate:datePicker.date]];
    [df release];

    if (popoverController != nil) {
        [popoverController dismissPopoverAnimated:YES];
        self.popoverController=nil;
    }  
}

You can display your new viewController using presentModalViewController method. I use it like this way:

- (IBAction)addNewBuidling:(id)sender
 {

    NewBuilding *new=[[NewBuilding alloc]initWithNibName:@"NewBuilding" bundle:nil];
           new.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
    new.modalPresentationStyle=UIModalPresentationFormSheet;
    [self.navigationController presentModalViewController:new animated:YES];

    new.view.superview.frame = CGRectMake(0, 0, 357 ,117);//it's important to do this after. Take a frame size exactly of your new viewController's size.
    new.view.superview.center = self.view.center;
    [new release];
 }

This is how my NewBuilding viewController will appear on screen.

enter image description here

Edit 1:

In this written in presentModalViewController reference: "On iPhone and iPod touch devices, the view of modalViewController is always presented full screen." so for iPhone it may not serve your purpose.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top