我在几个不同的论坛上搜索过,似乎无法找到答案.我已将一个条形按钮项添加到导航控制器并将其样式设置为UIBarButtonItemStyleDone.当这是导航堆栈上的第一个控制器时,该按钮正确显示蓝色.但是,当创建控制器并将其推入堆栈时,样式将被忽略并显示为黑色.
我知道更改tintColor时会出现此问题,但我使用的是标准UIBarStyleBlack而不是设置tintColor.我已经尝试将tintColor设置为nil,但这也不起作用.
相关代码:
- (void)viewDidLoad
{
[super viewDidLoad];
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;
self.navigationItem.rightBarButtonItem =
[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self
action:@selector(createNew:)];
self.navigationItem.rightBarButtonItem.style = UIBarButtonItemStyleDone;
}
Run Code Online (Sandbox Code Playgroud)
任何想法或解决方法将不胜感激.
我在我的应用程序的导航栏中添加了一个编辑按钮.
我有一个UIViewController,它实现了UITableViewDataSource和UITableViewDelegate.
我使用故事板添加了UITableView,并建立了与数据源和委托的连接.
我在视图控制器的实现文件中这样做了:
self.navigationItem.rightBarButtonItem = self.editButtonItem;
[self.editButtonItem setAction:@selector(setEditing:animated:)];
Run Code Online (Sandbox Code Playgroud)
和
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
DLog(@"Editing = %d", editing)
NSLog(editing ? @"Yes" : @"No");
[self.recentSearchList setEditing:editing animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
问题是每当我点击编辑按钮时,BOOL变量"编辑"总是"是".首先,它将UITableView设置为编辑模式,但"编辑"按钮仍然显示"编辑"标签而不是"完成".并且由于参数始终为YES,因此表视图永远不会设置为正常模式.
我从这里的答案中读到:UITableView处于编辑模式 - "编辑"按钮不会改变状态
我假设编辑按钮应该在点击时改变其状态.并且重写方法中的参数也应该切换.
我可以编写自己的代码来在UIViewController中设置标志来检查模式并相应地切换tableView但我假设必须有其他方法.