问题:
当我删除注释斜杠(//)时,Xcode会在创建新的UITableViewController类时自动注释掉的内置editButtonItem不起作用。 “通过不起作用”是指根本不显示“编辑”按钮。滑动单元也不起作用。

尝试的解决方案:
我试图遵循已发布在其他stackoverflow线程上的各种变通办法,但无济于事。我发现的大多数帖子都谈到了“编辑”按钮的各个方面均不起作用(例如,没有出现负号等),但是我发现其中很少根本没有显示“编辑”按钮的帖子。

午餐:
我有一种直觉,那就是它可能与UITableViewController没有正确实现有关。我对面向对象的程序设计和Objective-c都是陌生的,所以我对答案是否很基础表示歉意,但是,这是学习过程的一部分。任何帮助深表感谢。

代码:

____。h

#import <UIKit/UIKit.h>
#import "IndividualRecipeViewController.h"

@class BrowsePrivateRecipeViewController;

@protocol BrowsePrivateRecipeViewControllerDelegate
- (void)browsePrivateRecipeViewControllerDidFinish:(BrowsePrivateRecipeViewController *)controller;
@end

@interface BrowsePrivateRecipeViewController : UITableViewController

@property (weak, nonatomic) id <BrowsePrivateRecipeViewControllerDelegate> delegate;
@property (assign, nonatomic) NSUInteger listLength;
@property (strong, nonatomic) NSDictionary *dictionaryOfRecipes;
@property (strong, nonatomic) NSMutableArray *arrayOfRecipeNames;

// ... methods

@end

____。m
@interface BrowsePrivateRecipeViewController ()

@end

@implementation BrowsePrivateRecipeViewController

@synthesize delegate = _delegate;
@synthesize listLength = _listLength;
@synthesize dictionaryOfRecipes = _dictionaryOfRecipes;
@synthesize arrayOfRecipeNames = _arrayOfRecipeNames;

- (void)viewDidLoad
{
    // ... code here

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

// ... other methods

更新:

LINK TO SOURCE CODE

因此,我决定将源代码发布到我的整个项目中。我遇到了多个文件的问题,但是如果我将其修复为一个文件,我可以肯定其余的文件都将放到位。

请关注文件BrowsePrivateRecipeViewController.m/.h.这是问题最直接的实例。

再次感谢您的耐心配合和帮助。

真诚的
杰森

最佳答案

首先,我绝对不会使用自定义按钮来编辑表格。仅仅因为已经内置了一个就没有必要了。

只需使用UIViewControllereditButtonItem即可。
如果必须在按下按钮时执行其他操作,请覆盖-setEditing:animated:并首先调用super

您上面提到的错误是由于尝试访问navigationBarnavigationItem引起的,该错误不存在。您应该访问视图控制器的navigationItem

self.navigationItem.rightBarButtonItem = self.editButtonItem;

关于objective-c - editButtonItem未显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10392472/

10-09 22:06