iOS-UIPopoverController(ipad)

UIPopoverController只能在ipad设备上面使用;作用是用于显示临时内容,特点是总是显示在当前视图最前端,有一个箭头可以指示从哪一个button弹出来的,当单击界面的其他地方时自动消失。

(1)创建两个UIViewController类(ListViewController和oneViewController)

ListViewController作为一个弹出的控制器视图显示

(2)建好弹出视图显示些什么,就是弹出一个表。

[objc]

#import <UIKit/UIKit.h>

@interface ListViewController : UIViewController <UITableViewDelegate,UITableViewDataSource>

@property (strong,nonatomic)UITableView *favoriteTableView;//收藏夹table view

@property (strong,nonatomic)NSMutableArray *list;//收藏夹list

@end

[objc]

#import "ListViewController.h"

#import "threeViewController.h"

@interface ListViewController ()

@end

@implementation ListViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

{

self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];

if (self) {

// Custom initialization

}

return self;

}

- (void)viewDidLoad

{

[super viewDidLoad];

self.list = [[NSMutableArray alloc] initWithObjects:@"willingseal",@"http://blog.csdn.net/willingseal?viewmode=contents",@"有些事不是因为看到了希望才去坚持,而是坚持了才会看到了希望",@"爱情はひとりの诈欺师に恋をしていた馬鹿な童话…バカ愛情はひとりの詐欺師に恋をしていた馬鹿な童話", nil nil];

[self addTableview];

}

- (void)didReceiveMemoryWarning

{

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

//初始化table view

-(void) addTableview {

self.favoriteTableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, 400,500) style:UITableViewStylePlain];//初始化tabview

//    self.favoriteTableView.center =CGPointMake(self.view.center.x, self.view.center.y-70);//tableview的中心位置

self.favoriteTableView.delegate = self;

self.favoriteTableView.dataSource=self;

self.favoriteTableView.scrollEnabled=YES;//tabview是否滑动

//    self.favoriteTableView.layer.cornerRadius=15;//圆角大小

//    _loginTableView = TableView;

self.favoriteTableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg.png"]];

[self.view addSubview:self.favoriteTableView];

}

#pragma mark - Table view data source

//行高

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

return 50;

}

//多少个section

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

{

return 1;

}

//section里面有多少行

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)sectionIndex

{

NSLog(@"list is :%lu",[self.list count]);

return [self.list count];;

}

//cell内容

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

{

static NSString *CellIdentifier = @"cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell ==nil) {

cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

cell.selectionStyle = UITableViewCellSelectionStyleNone;

}

NSInteger row = [indexPath row];

cell.textLabel.text = [self.list objectAtIndex:row];

return cell;

}

//点击某个table view cell

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

NSString * selectStr =[[NSString alloc] initWithFormat:@"%@",[self.list objectAtIndex:indexPath.row]];

NSLog(@"%@",[self.list objectAtIndex:indexPath.row]);

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"willingseal" message:selectStr delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil nil];

[alert show];

}

@end

(3)点击button,弹出表

[objc]

#import <UIKit/UIKit.h>

#import "ListViewController.h"

@interface oneViewController : UIViewController <UIPopoverControllerDelegate>{

UIPopoverController *popoverController;

}

- (IBAction)tap:(UIButton *)sender;

@end

[objc]

- (IBAction)tap:(UIButton *)sender {

ListViewController *listVC =[[ListViewController alloc] init];//初始化ListViewController

popoverController = [[UIPopoverController alloc] initWithContentViewController:listVC];//初始化popoverController-UIPopoverController该控制器的内容必须由一个控制器ViewController提供

[popoverController setPopoverContentSize:CGSizeMake(400, 500)];//设置popoverController的内容大小

[popoverController setDelegate:self];//设置popoverController代理

[popoverController presentPopoverFromRect:sender.frame inView:self.view permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];//-第三个参数permittedArrowDirections是设置那个款箭头的方向,可以向上/下/左/右不同方向弹出--弹出带箭头的窗口,这一种方法是用在view上弹出窗口,另一种用在导航栏(UIBarButtonItem)弹出窗口-
(void)presentPopoverFromBarButtonItem:(UIBarButtonItem *)item permittedArrowDirections:(UIPopoverArrowDirection)arrowDirections animated:(BOOL)animated;

}

#pragma mark - popoverController

- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController

{

return YES;

}

//让它消失

- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController

{

NSLog(@"关闭了 PopverController ");

}

时间: 2024-11-08 06:41:19

iOS-UIPopoverController(ipad)的相关文章

iOS-响应上下左右滑动手势

iOS-响应上下左右滑动手势 分类: iPhone开发2012-03-17 14:42 25489人阅读 评论(8) 收藏 举报 iosup -(void)viewDidLoad{ UISwipeGestureRecognizer *recognizer; recognizer = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeFrom:)]; [recognizer setDir

IOS-沙盒机制(一 简述)

一 IOS沙盒机制 出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上.当应用程序被安装到设备上时,系统会为其创建一个家目录,这个家目录就是应用程序的沙盒.所以的文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等.(For security reasons, iOS places each app (including its preferences and data) in a sandbox at install time. A sandbox is a

IOS-沙盒机制(二 文件读写)

一 目录说明 如下图所示,一个沙盒中典型存在下面的目录和文件 各个目录及文件说明: 1.Documents      您应该将所有的应用程序数据文件写入到这个目录下,这个目录用于存储用户数据或其它应该定期备份的信息. 2.AppName.app   这是应用程序的程序包目录,包含应用程序的本身.由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动. 3.Library              这个目录下有两个子目录:Caches 和 Prefer

IOS -AFNetworking 简介及使用

一AFNetworking简介 AFNetworking是一个在IOS开发中使用非常多网络开源库,适用于iOS以及Mac OS X. 它构建于在(apple ios开发文档)NSURLConnection, NSOperation,以及其他熟悉的Foundation技术之上.它拥有良好的架构,丰富的api,以及模块化构建方式,使得使用起来非常轻松. AFURLConnectionOperation:继承自 NSOperation 实现了NSURLConnection 的代理方法. AFHTTPR

IOS-本地存储-NSUserDefaults

We consider permutations of the numbers 1,..., N for some N. By permutation we mean a rearrangment of the number 1,...,N. For example 2  4  5  1  7  6  3  8 is a permutation of 1,2,...,8. Of course, 1  2  3  4  5  6  7  8 is also a permutation of 1,2

iOS-设置视图的边框

iOS-设置视图的边框 效果图: 具体代码: //创建视图 UIView * view=[[[UIView alloc]init]autorelease]; view.frame=CGRectMake(0, 0, 270, 250); view.backgroundColor=[UIColor whiteColor]; view.center=self.view.center; [self.view addSubview:view]; //view的边框 CALayer * layer=[vie

iOS-多线程 ,整理集锦,多种线程的创建

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; //创建线程的第一种方式 NSThread *thread = [[NSThread all

ios-实现ARC与MRC混编

选择target -> build phases -> compile sources -> 用ARC的文件将compiler flags设置为:-fobjc-arc,用MRC的文件将compiler flags设置为:-fno-objc-arc. 同样,如果一个项目用ARC,而某个文件需要用MRC,只需要在compiler sources中将该文件的 compiler flags设置为-fno-objc-arc即可. ios-实现ARC与MRC混编

iOS - 安全传输编程专业术语

iOS - 安全传输编程专业术语 1.access control list(ACL):访问控制列表,一个数据结构,如果你要访问一个钥匙串的一个条目,它会提供一些访问需求,例如显示确认对话框,询问密码等一系列的操作,当你完成了这些要求,你就可以访问钥匙串中的项,它同时还包含表已经被信任的操作应用程序相关的列表,每个钥匙串中的项有一个或者多个ACLs,每一个ACLs应用在一个条目的一个操作上,比如加密解密. 2.access object:一个不透明的数据结构它对应了一个ACL,它包含了ACL的数