diff --git a/PopoverView/Classes/MainViewController.h b/PopoverView/Classes/MainViewController.h index 5639f93..10f0455 100644 --- a/PopoverView/Classes/MainViewController.h +++ b/PopoverView/Classes/MainViewController.h @@ -8,6 +8,7 @@ #import #import "ViewWithPickerController.h" +#import "TablePopoverController.h" @interface MainViewController : UIViewController { @@ -15,19 +16,24 @@ IBOutlet UIButton *popoverButton; IBOutlet UIButton *popoverButtonForPicker; + IBOutlet UIButton *popoverButtonForTable; ViewWithPickerController *viewWithPickerController; + TablePopoverController *tablePopoverController; } @property(nonatomic, retain) UIPopoverController *popoverController; @property(nonatomic, retain) IBOutlet UIButton *popoverButton; @property(nonatomic, retain) IBOutlet UIButton *popoverButtonForPicker; +@property(nonatomic, retain) IBOutlet UIButton *popoverButtonForTable; @property(nonatomic, retain) ViewWithPickerController *viewWithPickerController; +@property(nonatomic, retain) TablePopoverController *tablePopoverController; - (void) toolbarAction:(id) sender; - (void) buttonAction:(id) sender; - (void) showPickerPopupAction:(id) sender; +- (void) showTablePopupAction:(id) sender; @end diff --git a/PopoverView/Classes/MainViewController.m b/PopoverView/Classes/MainViewController.m index 711df2e..b238e34 100644 --- a/PopoverView/Classes/MainViewController.m +++ b/PopoverView/Classes/MainViewController.m @@ -8,9 +8,15 @@ #import "MainViewController.h" + @implementation MainViewController -@synthesize popoverController, popoverButton, viewWithPickerController, popoverButtonForPicker; +@synthesize popoverController; +@synthesize popoverButton; +@synthesize viewWithPickerController; +@synthesize popoverButtonForPicker; +@synthesize tablePopoverController; +@synthesize popoverButtonForTable; //method which gets called when button at toolbar was activated - (void) toolbarAction:(id) sender { @@ -38,8 +44,8 @@ - (void) toolbarAction:(id) sender { popoverContent.contentSizeForViewInPopover = CGSizeMake(300, 400); //create a popover controller - self.popoverController = [[UIPopoverController alloc] - initWithContentViewController:popoverContent]; + self.popoverController = [[[UIPopoverController alloc] + initWithContentViewController:popoverContent] autorelease]; //present the popover view non-modal with a //refrence to the toolbar button which was pressed @@ -82,8 +88,8 @@ - (void) buttonAction:(id) sender { popoverContent.contentSizeForViewInPopover = CGSizeMake(200, 300); //create a popover controller - self.popoverController = [[UIPopoverController alloc] - initWithContentViewController:popoverContent]; + self.popoverController = [[[UIPopoverController alloc] + initWithContentViewController:popoverContent] autorelease]; //present the popover view non-modal with a //refrence to the button pressed within the current view @@ -100,9 +106,9 @@ - (void) buttonAction:(id) sender { - (void) showPickerPopupAction:(id) sender { //create the view controller from nib - self.viewWithPickerController = [[ViewWithPickerController alloc] + self.viewWithPickerController = [[[ViewWithPickerController alloc] initWithNibName:@"ViewWithPicker" - bundle:[NSBundle mainBundle]]; + bundle:[NSBundle mainBundle]] autorelease]; //set popover content size @@ -114,8 +120,8 @@ - (void) showPickerPopupAction:(id) sender { //create a popover controller - self.popoverController = [[UIPopoverController alloc] - initWithContentViewController:viewWithPickerController]; + self.popoverController = [[[UIPopoverController alloc] + initWithContentViewController:viewWithPickerController] autorelease]; //present the popover view non-modal with a @@ -126,6 +132,29 @@ - (void) showPickerPopupAction:(id) sender { animated:YES]; } +- (void) showTablePopupAction:(id) sender +{ + //create the view controller from nib + self.tablePopoverController = [[[TablePopoverController alloc] + initWithNibName:@"TablePopover" + bundle:[NSBundle mainBundle]] autorelease]; + + //set popover content size + tablePopoverController.contentSizeForViewInPopover = CGSizeMake(320, 300); + + //create a popover controller + self.popoverController = [[[UIPopoverController alloc] + initWithContentViewController:tablePopoverController] autorelease]; + + + //present the popover view non-modal with a + //refrence to the button pressed within the current view + [self.popoverController presentPopoverFromRect:popoverButtonForTable.frame + inView:self.view + permittedArrowDirections:UIPopoverArrowDirectionAny + animated:YES]; +} + // Method gets called whenever the selection of an element // within the picker view in the popover view occurs. - (void) viewWithPickerController:(ViewWithPickerController*) viewWithPickerController didSelectValue:(NSString*) value @@ -148,10 +177,12 @@ - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interface - (void)dealloc { - self.popoverController = nil; - self.popoverButton = nil; - self.viewWithPickerController = nil; - self.popoverButtonForPicker = nil; + self.popoverController = nil; + self.popoverButton = nil; + self.viewWithPickerController = nil; + self.popoverButtonForPicker = nil; + self.tablePopoverController = nil; + self.popoverButtonForTable = nil; [super dealloc]; } diff --git a/PopoverView/Classes/TablePopoverController.h b/PopoverView/Classes/TablePopoverController.h new file mode 100644 index 0000000..255f574 --- /dev/null +++ b/PopoverView/Classes/TablePopoverController.h @@ -0,0 +1,16 @@ +// +// TablePopoverController.h +// PopoverView +// +// Created by Andreas Katzian on 04.10.10. +// Copyright 2010 Blackwhale GmbH. All rights reserved. +// + +#import + + +@interface TablePopoverController : UITableViewController { + +} + +@end diff --git a/PopoverView/Classes/TablePopoverController.m b/PopoverView/Classes/TablePopoverController.m new file mode 100644 index 0000000..e3316b3 --- /dev/null +++ b/PopoverView/Classes/TablePopoverController.m @@ -0,0 +1,66 @@ +// +// TablePopoverController.m +// PopoverView +// +// Created by Andreas Katzian on 04.10.10. +// Copyright 2010 Blackwhale GmbH. All rights reserved. +// + +#import "TablePopoverController.h" + + +@implementation TablePopoverController + + + +#pragma mark - +#pragma mark Table view data source + +// Return the number of sections. +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 3; +} + + +// Return the number of rows in the section. +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { + return 1; +} + + +// Customize the appearance of table view cells. +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + + static NSString *CellIdentifier = @"Cell"; + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; + if (cell == nil) { + cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; + } + + cell.detailTextLabel.text = [NSString stringWithFormat:@"This is cell nr. %d", indexPath.section]; + cell.textLabel.text = [NSString stringWithFormat:@"Cell %d", indexPath.section]; + + return cell; +} + + +#pragma mark - +#pragma mark Table view delegate + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + //do something in here +} + + +#pragma mark - +#pragma mark Memory management + + +- (void)dealloc { + [super dealloc]; +} + + +@end + diff --git a/PopoverView/MainView.xib b/PopoverView/MainView.xib index 15c1532..1a91c33 100644 --- a/PopoverView/MainView.xib +++ b/PopoverView/MainView.xib @@ -2,13 +2,13 @@ 800 - 10D573 - 762 + 10F569 + 804 1038.29 - 460.00 + 461.00 com.apple.InterfaceBuilder.IBCocoaTouchPlugin - 87 + 123 YES @@ -107,7 +107,7 @@ 292 - {{267, 636}, {232, 37}} + {{267, 560}, {232, 37}} NO IBIPadFramework @@ -136,7 +136,7 @@ 292 - {{267, 712}, {232, 37}} + {{267, 617}, {232, 37}} NO IBIPadFramework @@ -152,6 +152,25 @@ + + + 292 + {{267, 676}, {232, 37}} + + NO + IBIPadFramework + 0 + 0 + + 1 + Show Popover with TableView + + + 1 + MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA + + + {768, 1004} @@ -218,6 +237,23 @@ 23 + + + showTablePopupAction: + + + 7 + + 26 + + + + popoverButtonForTable + + + + 27 + @@ -249,6 +285,7 @@ + @@ -286,6 +323,11 @@ + + 24 + + + @@ -296,10 +338,14 @@ -2.CustomClassName 10.IBPluginDependency 12.IBPluginDependency + 12.IBViewBoundsToFrameTransform 13.IBPluginDependency 2.IBEditorWindowLastContentRect 2.IBPluginDependency 20.IBPluginDependency + 20.IBViewBoundsToFrameTransform + 24.IBPluginDependency + 24.IBViewBoundsToFrameTransform 9.IBPluginDependency @@ -308,10 +354,20 @@ UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABDhYAAxCfAAA + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + {{1, 88}, {783, 918}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin - {{1, 86}, {783, 920}} com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + P4AAAL+AAABDhYAAxCfAAA + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + AUOFgABEKQAAA + com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -331,7 +387,7 @@ - 23 + 27 @@ -345,6 +401,7 @@ YES buttonAction: showPickerPopupAction: + showTablePopupAction: toolbarAction: @@ -352,6 +409,36 @@ id id id + id + + + + YES + + YES + buttonAction: + showPickerPopupAction: + showTablePopupAction: + toolbarAction: + + + YES + + buttonAction: + id + + + showPickerPopupAction: + id + + + showTablePopupAction: + id + + + toolbarAction: + id + @@ -360,11 +447,37 @@ YES popoverButton popoverButtonForPicker + popoverButtonForTable YES UIButton UIButton + UIButton + + + + YES + + YES + popoverButton + popoverButtonForPicker + popoverButtonForTable + + + YES + + popoverButton + UIButton + + + popoverButtonForPicker + UIButton + + + popoverButtonForTable + UIButton + @@ -641,6 +754,6 @@ blackwhale.png {110, 114} - 87 + 123 diff --git a/PopoverView/PopoverView.xcodeproj/project.pbxproj b/PopoverView/PopoverView.xcodeproj/project.pbxproj index 3cf278c..95151cc 100755 --- a/PopoverView/PopoverView.xcodeproj/project.pbxproj +++ b/PopoverView/PopoverView.xcodeproj/project.pbxproj @@ -18,6 +18,8 @@ A91F4E8C11A0B65900EB45AA /* blackwhale.png in Resources */ = {isa = PBXBuildFile; fileRef = A91F4E8B11A0B65900EB45AA /* blackwhale.png */; }; A91F4ECB11A0BDB300EB45AA /* ViewWithPicker.xib in Resources */ = {isa = PBXBuildFile; fileRef = A91F4ECA11A0BDB300EB45AA /* ViewWithPicker.xib */; }; A91F4ECF11A0BE5B00EB45AA /* ViewWithPickerController.m in Sources */ = {isa = PBXBuildFile; fileRef = A91F4ECE11A0BE5B00EB45AA /* ViewWithPickerController.m */; }; + A955EEED1259EE9000A38EFA /* TablePopover.xib in Resources */ = {isa = PBXBuildFile; fileRef = A955EEEC1259EE9000A38EFA /* TablePopover.xib */; }; + A955EEF11259EEAD00A38EFA /* TablePopoverController.m in Sources */ = {isa = PBXBuildFile; fileRef = A955EEF01259EEAD00A38EFA /* TablePopoverController.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -38,6 +40,9 @@ A91F4ECA11A0BDB300EB45AA /* ViewWithPicker.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ViewWithPicker.xib; sourceTree = ""; }; A91F4ECD11A0BE5B00EB45AA /* ViewWithPickerController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewWithPickerController.h; sourceTree = ""; }; A91F4ECE11A0BE5B00EB45AA /* ViewWithPickerController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewWithPickerController.m; sourceTree = ""; }; + A955EEEC1259EE9000A38EFA /* TablePopover.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TablePopover.xib; sourceTree = ""; }; + A955EEEF1259EEAD00A38EFA /* TablePopoverController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TablePopoverController.h; sourceTree = ""; }; + A955EEF01259EEAD00A38EFA /* TablePopoverController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TablePopoverController.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -63,6 +68,8 @@ 28D7ACF70DDB3853001CB0EB /* MainViewController.m */, A91F4ECD11A0BE5B00EB45AA /* ViewWithPickerController.h */, A91F4ECE11A0BE5B00EB45AA /* ViewWithPickerController.m */, + A955EEEF1259EEAD00A38EFA /* TablePopoverController.h */, + A955EEF01259EEAD00A38EFA /* TablePopoverController.m */, ); path = Classes; sourceTree = ""; @@ -104,6 +111,7 @@ 28AD733E0D9D9553002E5188 /* MainWindow.xib */, 8D1107310486CEB800E47090 /* PopoverView-Info.plist */, A91F4ECA11A0BDB300EB45AA /* ViewWithPicker.xib */, + A955EEEC1259EE9000A38EFA /* TablePopover.xib */, ); name = Resources; sourceTree = ""; @@ -171,6 +179,7 @@ 2899E5220DE3E06400AC0155 /* MainView.xib in Resources */, A91F4E8C11A0B65900EB45AA /* blackwhale.png in Resources */, A91F4ECB11A0BDB300EB45AA /* ViewWithPicker.xib in Resources */, + A955EEED1259EE9000A38EFA /* TablePopover.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -185,6 +194,7 @@ 1D3623260D0F684500981E51 /* PopoverViewAppDelegate.m in Sources */, 28D7ACF80DDB3853001CB0EB /* MainViewController.m in Sources */, A91F4ECF11A0BE5B00EB45AA /* ViewWithPickerController.m in Sources */, + A955EEF11259EEAD00A38EFA /* TablePopoverController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/PopoverView/TablePopover.xib b/PopoverView/TablePopover.xib new file mode 100644 index 0000000..3fcc8d1 --- /dev/null +++ b/PopoverView/TablePopover.xib @@ -0,0 +1,397 @@ + + + + 800 + 10F569 + 804 + 1038.29 + 461.00 + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + 123 + + + YES + + + + YES + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + YES + + YES + + + YES + + + + YES + + IBFilesOwner + IBIPadFramework + + + IBFirstResponder + IBIPadFramework + + + + 274 + {320, 300} + + + 1 + MCAwIDAgMAA + + YES + IBIPadFramework + YES + 1 + 1 + 0 + YES + 44 + 10 + 10 + + + + + YES + + + view + + + + 4 + + + + dataSource + + + + 5 + + + + delegate + + + + 6 + + + + + YES + + 0 + + + + + + -1 + + + File's Owner + + + -2 + + + + + 3 + + + + + + + YES + + YES + -1.CustomClassName + -2.CustomClassName + 3.IBEditorWindowLastContentRect + 3.IBPluginDependency + + + YES + TablePopoverController + UIResponder + {{207, 479}, {320, 300}} + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 6 + + + + YES + + TablePopoverController + UITableViewController + + IBProjectSource + Classes/TablePopoverController.h + + + + + YES + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSNetServices.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPort.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSStream.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSXMLParser.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIAccessibility.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UINibLoading.h + + + + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UIResponder.h + + + + UIResponder + NSObject + + + + UIScrollView + UIView + + IBFrameworkSource + UIKit.framework/Headers/UIScrollView.h + + + + UISearchBar + UIView + + IBFrameworkSource + UIKit.framework/Headers/UISearchBar.h + + + + UISearchDisplayController + NSObject + + IBFrameworkSource + UIKit.framework/Headers/UISearchDisplayController.h + + + + UITableView + UIScrollView + + IBFrameworkSource + UIKit.framework/Headers/UITableView.h + + + + UITableViewController + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITableViewController.h + + + + UIView + + IBFrameworkSource + UIKit.framework/Headers/UITextField.h + + + + UIView + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIView.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UINavigationController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UIPopoverController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UISplitViewController.h + + + + UIViewController + + IBFrameworkSource + UIKit.framework/Headers/UITabBarController.h + + + + UIViewController + UIResponder + + IBFrameworkSource + UIKit.framework/Headers/UIViewController.h + + + + + 0 + IBIPadFramework + + com.apple.InterfaceBuilder.CocoaTouchPlugin.iPhoneOS + + + + com.apple.InterfaceBuilder.CocoaTouchPlugin.InterfaceBuilder3 + + + YES + PopoverView.xcodeproj + 3 + 123 + +