IOS教程中的UnwindToList不会激活

时间:2014-04-06 11:15:34

标签: ios objective-c

我已经按照"今天开始开发iOS应用程序"教程。

应用程序通常按照我的预期构建。但是下面的块没有用。

o将按钮链接到unwindToList:action

1)在项目导航器中,选择Main.storyboard。

2)在画布上,按住Control键并从“取消”按钮拖动到“添加到项目”场景停靠栏中的“退出”项目。如果在场景停靠栏中没有看到“退出”项,而是看到说明在场景中,单击画布上的放大图像:../ Art / zoom_in_2x.png按钮,直到看到它为止。拖动结束的位置会出现一个菜单。

3)从快捷菜单中选择unwindToList:这是您刚刚添加到XYZToDoListViewController.m文件的操作。这意味着当点击取消按钮时,segue将展开并调用此方法。

4)在画布上,按住Control键并从“完成”按钮拖动到XYZAddToDoItemViewController场景停靠栏中的“退出”项目。

5)从快捷菜单中选择unwindToList:

教程中的所有其他说明都有效。构建编译没有错误。当应用程序在模拟器中运行时,用户单击“完成”或“取消”,但焦点不会移回ToDoList场景。它只停留在Add Item屏幕上。

关于正在发生的事情的任何想法。 iOS 7.1

一些进一步的细节

这是带有unwindToList的ToDoController.m

 -(IBAction)unwindToList:(UIStoryboardSegue *)segue
{
ianNo00004AddToDoItemViewController *source = [segue sourceViewController];
ianNo00004ToDoItem *item = source.toDoItem;

if (item != nil) {
    [self.toDoItems addObject:item];
    [self.tableView reloadData];
}

}

**This is the ToDoListController.h**

@interface ianNo00004ToDoListViewController : UITableViewController

-(IBAction)unwindToList:(UIStoryboardSegue *)segue;

@end

AddToItemViewController.m代码     #import" ianNo00004AddToDoItemViewController.h"

@interface ianNo00004AddToDoItemViewController ()


@property (weak, nonatomic) IBOutlet UITextField *textField;
@property (weak, nonatomic) IBOutlet UIBarButtonItem *doneButton;


@end

@implementation ianNo00004AddToDoItemViewController

- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if (sender != self.doneButton) return;
if (self.textField.text.length > 0)
{
    self.toDoItem = [[ianNo00004ToDoItem alloc] init];
    self.toDoItem.itemName = self.textField.text;
    self.toDoItem.completed = NO;
}

}

2 个答案:

答案 0 :(得分:0)

我正在做同样的例子并且我的工作。在故事板上查看“添加待办事项”上的连接检查器,以获取取消和完成按钮,并查看它们是否对触发的Segues有操作。 我从项目的两个按钮中删除了操作,并且Add To-Do Item不会关闭,所以我认为你错过了这些操作。

答案 1 :(得分:0)

您应该在 XYZToDoListTableViewController.h

中添加方法 unwindToList

(不是ItemViewController,而是TableViewController)

@interface XYZToDoListTableViewController : UITableViewController
    -(IBAction)unwindToList:(UIStoryboardSegue *)segue;
@end

然后在XYZToDoListTableViewController.m

中添加以下代码
- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{

}

您使用的教程可能是旧版本,可能存在一些错误。 在这里关注最新版本: https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/SecondTutorial.html#//apple_ref/doc/uid/TP40011343-CH8-SW7