我有4个UIBarButtons在点击时显示PopoverController。根据点击的按钮,我必须显示不同的弹出窗口内容,这必须在PopoverController viewDidLoad方法中完成。
以下是我处理UIBarButton所使用的popover的方法。在(VC1.m)
[PopoverController presentPopoverFromBarButtonItem:[self.navigationItem.rightBarButtonItems objectAtIndex:[self.navigationItem.rightBarButtonItems count] -1]
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
我想把条件放在viewDidLoad,(PopoverController.m)
中- (void)viewDidLoad {
[super viewDidLoad];
if ([super.navigationItem.rightBarButtonItems objectAtIndex:[self.navigationItem.rightBarButtonItems count] -1]) {
// Trigger method# 1
}
else {
// Trigger method# 2
}
}
答案 0 :(得分:1)
我建议为您将要使用的初始制表符状态添加属性。基本上是:
@property NSInteger tabState;
然后你可以在初始化之后或在init函数中设置它。
假设上面代码中的PopoverController
是您在某处实例化的UIPopoverController
的子类,您可以更改init函数(通常– initWithContentViewController:
到– initWithContentViewController:tabState:
并且然后在调用init期间传递tab状态:
– initWithContentViewController:(UIViewController*)vc tabState:(NSInteger)newTabState
{
self = [super initWithContentViewController: vc];
if (self) {
self.tabState = newTabState;
}
return self;
}
然后在您的-viewDidLoad
方法中,您可以触发self.tabState
,并且您拥有状态信息,而不会与之前的视图紧密绑定。