Sat*_*yam 10 uitableview uipopovercontroller ios
在我的Popover控制器中,我有一个表格视图.在选择单元格时,我想隐藏弹出窗口.我怎样才能实现它.
在根视图控制器的头文件中:
@property (strong, nonatomic) UIStoryboardPopoverSegue* popSegue;
Run Code Online (Sandbox Code Playgroud)
在实现文件中:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if( [[segue identifier] isEqualToString:@"popover"] )
{
NSLog(@"%@",[segue destinationViewController]);
self.popSegue = (UIStoryboardPopoverSegue*)segue;
[[segue destinationViewController] setDelegate:self];
}
}
Run Code Online (Sandbox Code Playgroud)
什么时候你想隐藏弹出:
if ([self.popSegue.popoverController isPopoverVisible])
{
[self.popSegue.popoverController dismissPopoverAnimated:YES];
}
Run Code Online (Sandbox Code Playgroud)
在表视图中,添加委托并在根视图控制器中实现委托.调用委托方法时,使用上面的代码来关闭弹出窗口.
请允许我建议一个略有不同的解决方案,其中包括传递popover控制器引用而不是segue引用.
在源视图控制器的实现文件中:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue destinationViewController] isKindOfClass:[MyDestViewController class]]) {
MyDestViewController* viewController = (MyDestViewController*)[segue destinationViewController];
UIStoryboardPopoverSegue* popoverSegue = (UIStoryboardPopoverSegue*)segue;
[viewController setPopoverController:[popoverSegue popoverController]];
}
}
Run Code Online (Sandbox Code Playgroud)
在目标视图控制器的头文件中:
@property (weak, nonatomic) UIPopoverController* popoverController;
Run Code Online (Sandbox Code Playgroud)
在目标视图控制器的实现文件中:
@synthesize popoverController;
Run Code Online (Sandbox Code Playgroud)
同样的文件,无论何时你想解雇popover:
[popoverController dismissPopoverAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12355 次 |
| 最近记录: |