退出

时间:2016-02-14 17:02:46

标签: storyboard swift2 xcode7.2

我正在使用Xcode 7.我在视图A中编写了展开功能。我想从视图B返回到视图A.当我在退出时用ctrl拖动我的按钮时,不会出现任何展开功能。当我右键单击退出时,它是空的。我该如何解决?或者我可以通过编程方式放松?

这是我的展开功能:

@IBAction func unwindToProductList(sender: UIStoryboardSegue) {
    print("unwindToProductList called")
}

enter image description here

修改

我认为我发现了这个问题,但无法理解为什么xcode就是这样的。在我的viewcontroller的开头,我有这样的代码行:

import UIKit

extension ProductListViewController: UISearchResultsUpdating {
    func updateSearchResultsForSearchController(searchController: UISearchController) {
        filterContentForSearchText(searchController.searchBar.text!)
    }
}

class ProductListViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
.....
}

当我评论我的扩展程序时,退出查看我的展开功能,但是如果取消注释我的扩展程序,退出后再看不到我的展开功能,我是否在错误的地方写了扩展程序?

解决方案:

我通过从代码开头删除扩展并在视图控制器中实现它来修复我的问题,在它退出按钮开始看到我的展开功能之后:

class ProductListViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, UISearchResultsUpdating {

    func updateSearchResultsForSearchController(searchController: UISearchController) {
        filterContentForSearchText(searchController.searchBar.text!)
    }

    ....
}

2 个答案:

答案 0 :(得分:2)

我通过从代码开头删除扩展并在视图控制器中实现它来修复我的问题,在它退出按钮开始看到我的展开功能之后:

@Override
public int getViewType(int position) {
ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("NativeAd");
query.whereEqualTo("objectId", "fYBeufqdOt");
final String[] n =  new String[1]; 
query.getFirstInBackground(new GetCallback() {
    @Override
    public void done(ParseObject object, ParseException e) {
         n[0] = object.toString();
    }
});

int viewType = VIEW_TYPE_MARKET_FEED;
if ((position % n[0] == 0) && position > 0) {
    viewType = VIEW_TYPE_AD;
}
return viewType;

答案 1 :(得分:0)

可能是您的IB中的视图控制器“A”的类没有分配给您定义的相应UIViewController类吗?这会阻止编辑器/编译器看到IBAction,因为它找不到任何链接到您的类的IB视图控制器。