编辑时,“添加”按钮,动作点击发件人

时间:2014-03-07 09:12:45

标签: ios objective-c xcode cocoa

我有一个名为Ingr的TableView控制器。其中有一个项目列表。我设置了编辑按钮和删除功能。现在,我正在尝试设置添加功能,因为这些项必须由用户添加。我的问题是隐藏“添加”按钮,直到您单击“编辑”按钮。因此,我无法从故事板中制作一个segue,因为我没有看到按钮。我需要在单击添加时切换到另一个控制器。我试图以这种方式解决它:

ViewControllerIngr.h

@interface ViewControllerIngr : UITableViewController <UITableViewDataSource , UITableViewDelegate>

-(IBAction) editButtonClicked:(id)sender;
-(IBAction) addAction:(id)sender;
-(IBAction) doneAction:(id)sender;

@end

ViewControllerIngr.m

-(IBAction)editButtonClicked:(id)sender

{

[self.tableView setEditing:YES animated:YES];


UIBarButtonItem *addBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addAction:)];
    self.navigationItem.leftBarButtonItem = addBtn;

    UIBarButtonItem *fattoBtn = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneAction:)];
    self.navigationItem.rightBarButtonItem = fattoBtn;

}

-(void)doneAction:(id)sender{
[self.tableView setEditing:NO animated:NO];

self.navigationItem.leftBarButtonItem = nil;

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemEdit target:self action:@selector(editButtonClicked:)];



}


-(IBAction)addAction:(id)sender{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
ViewControllerInfo *info = (ViewControllerInfo*)[storyboard instantiateViewControllerWithIdentifier:@"info"];

[self presentViewController:info animated:YES completion:nil];

}

我只想在这里复制所有3个按钮发件人更清楚。然而,我写的唯一一个我不知道是错还是正确的是addAction,考虑到当它切换时我无法看到我在ViewControllerInfo中设计的内容。

我没有以任何方式编辑ViewControllerInfo.h和ViewControllerInfo.m

2 个答案:

答案 0 :(得分:1)

您可以在故事板中添加segue,而无需将其链接到特定按钮。

你需要从一个ViewController到另一个创建一个segue - 你可以通过从ViewController进行控制点击来实现这一点(它可能最容易从状态栏的顶部拖动)并拖动到另一个。然后,选择segue,并在右侧的检查器中为其指定标识符。

然后,在代码中,您可以使用其标识符执行此segue,如下所示:

[self performSegueWithIdentifier:@"MySegueIdentifier" sender:self];

答案 1 :(得分:0)

首先,在.xib文件的属性检查器中,为该视图或nib文件创建一个标识符;假设它是 info

如果您使用NavigationController

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Storyboard" bundle:nil];
ViewControllerInfo *info = (ViewControllerInfo*)[storyboard instantiateViewControllerWithIdentifier:@"info"];
[self.navigationController pushViewController:info animated:YES];