我正在尝试在关闭视图的ModalView的导航控件的右上角放置一个“关闭”或“完成”按钮。使用普通的UIView,我能够做到这一点。但是,当我尝试为我的ModalView使用UITableView时,我无法再将BarButton的目标设置为父控制器。
“dismissModalController”方法在一个单独的控制器中,而不是TableView的,但是按钮想要默认使用TableViewController,而不是使用“dimissModalController”所在的目标控制器。
如何使用UITableView复制UIView中按钮的功能?
UITableView启动(不工作):
-initWithStyle:(UITableViewStyle) style {
ToolbarController *myParent;
if(self=[super initWithStyle:style]) {
self.title=@"Widgets List";
UIBarButtonItem *rightButton =
[[UIBarButtonItem alloc] initWithTitle:@"Dismiss"
style:UIBarButtonItemStyleDone
target:myParent
action:@selector(dismissModalController)
];
self.navigationItem.rightBarButtonItem=rightButton;
[rightButton release];
}
return self;}
UIView启动(工程):
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
parent:(ToolbarController*) myParent{
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
UIBarButtonItem *rightButton =
[[UIBarButtonItem alloc] initWithTitle:@"Dismiss"
style:UIBarButtonItemStyleDone
target:myParent
action:@selector(dismissModalController)
];
self.navigationItem.rightBarButtonItem=rightButton;
[rightButton release];
}
return self;
}
答案 0 :(得分:1)
在使用它之前,您没有在initWithStyle中设置“myParent”。
此外,您可以从自身中解除模态视图控制器,而不是设置委托。我觉得这个更简单。以下是iPhone开发人员中心对dismissModalViewControllerAnimated:
的讨论父视图控制器是 负责解雇模态 查看它使用的控制器 presentModalViewController:动画: 方法。如果你在上面调用这个方法 然而,模态视图控制器本身, 模态视图控制器 自动转发消息 它的父视图控制器。
答案 1 :(得分:0)
尝试了一些有效但却发出警告的东西。但是,警告永远不会结束该程序。基本上我在参数中设置parent并在调用此方法时传递ToolbarController。两种其他尝试之间的混合体。我认为它不会起作用,这可能是不好的做法,但确实解决了这个问题。
-initWithStyle:(UITableViewStyle) style parent:(ToolbarController*) myParent {
self.title=@"Widgets List";
UIBarButtonItem *rightButton =
[[UIBarButtonItem alloc] initWithTitle:@"Dismiss"
style:UIBarButtonItemStyleDone
target:myParent
action:@selector(dismissModelController)
];
self.navigationItem.rightBarButtonItem=rightButton;
[rightButton release];
return self;
}