- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个从 IB 实例化的 View Controller 。它包含一个 UIButton,其操作创建一个 UIPopoverController,其委托(delegate)通过以下方式更新 UIButton 的标题:
- (void) popoverSelected:(NSString*)string {
[self.sortButton setTitle:string forState:UIControlStateNormal];
[self.sortPickerPopover dismissPopoverAnimated:YES];
}
popoverSelected
是
UIPopoverController
的委托(delegate)方法,其中包含一个简单的
UITableView
.
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *selectedSort = [_sortTypes objectAtIndex:indexPath.row];
if (_delegate != nil) {
[_delegate popoverSelected:selectedSort];
}
}
self.button
上的 TouchUpInside 操作实例化。通过:
- (IBAction)sortButtonPressed:(id)sender {
if (_sortPicker == nil) {
// Create the picker view controller
_sortPicker = [[SortPickerViewController alloc] initWithStyle:UITableViewStylePlain];
// Set this as the delegate
_sortPicker.delegate = self;
}
if (_sortPickerPopover == nil) {
// The colour picker popover is not showing. Show it
_sortPickerPopover = [[UIPopoverController alloc] initWithContentViewController:_sortPicker];
[_sortPickerPopover presentPopoverFromRect:_sortButton.frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
} else {
// if it's showing, we want to hide it
[_sortPickerPopover dismissPopoverAnimated:YES];
_sortPickerPopover = nil;
}
}
EXC_BAD_ACCESS
执行 setTitle 时:在
popoverSelected
.
[__NSArrayI valueRestriction] unrecognised selector sent to instance
这更没有意义。
最佳答案
而不是检查 _sortPickerPopover == nil
要知道是否显示它,你应该检查[_sortPickerPopover isPopoverVisible]
.另外,我会将构造代码放入自动加载器中。
- (UIPopoverController *)sortPickerPopover
{
if (!_sortPickerPopover) {
_sortPickerPopover = [[UIPopoverController alloc] initWithContentViewController:self.sortPicker];
}
return _sortPickerPopover;
}
- (SortPickerViewController *)sortPicker
{
if (!_sortPicker) {
_sortPicker = [[SortPickerViewController alloc] initWithStyle:UITableViewStylePlain];
// Set this as the delegate
_sortPicker.delegate = self;
}
return _sortPicker;
}
- (IBAction)sortButtonPressed:(UIButton *)sender
{
if ([self.sortPickerPopover isPopoverVisible]) {
[self.sortPickerPopover dismissPopoverAnimated:YES];
} else {
[self.sortPickerPopover presentPopoverFromRect:sender.frame
inView:sender
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
}
/***
* NOTE: Delegate methods should always pass the calling object as the first
* object. Additionally, the name is not very descriptive of what is actually
* being performed and does not use should/will/did naming conventions.
* You should consider changing this method to something like:
* - (void)sortPickerViewController:(SortPickerViewController *)sortPicker
* didSelectSortMethod:(NSString *)sortMethod
**/
- (void)popoverSelected:(NSString *)string
{
[self.sortButton setTitle:string forState:UIControlStateNormal];
[self.sortPickerPopover dismissPopoverAnimated:YES];
}
关于ios - UIButton EXC_BAD_ACCESS on setTitle :forState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19665947/
我知道有两种方法可以在 Android Activity 中设置标题。 假设我已经有以下代码... @Override protected void onCreate(Bundle savedInst
我想将当前 Activity 的标题设置为相册的标题。我使用 Toolbar.setTitle() 设置标题选项。不过,我最近遇到了setTitle()它设置 Activity 名称并更改标题。 使用
我的教训是改变了JFrame的setTitle方法,所以它允许整数作为参数。怎么做?我必须重载那个方法,对吧?我在 setTitle 方法中尝试的任何操作都以堆栈溢出结束。 import javax.
当我在 WatchKit 中推送一个新 Controller 并在新 Controller 的awakeWithContext: 方法中使用 setTitle 时,它需要一秒钟左右来设置标题,直到
我目前正在开发自己的扫雷器。在重写 setTitle 方法时,我遇到以下问题。 //InfoDisplayer is inner class of class MenuActionListener
我需要通过方法(而非构造函数)设置标题。我试过这样做,但没有用: import javax.swing.*; import java.awt.*; public class PointGraphWri
我正在开发一个构建您自己的冒险应用程序,其中有 2 个按钮,每次按下它们时都会更改其 .setTitle 。我的应用程序已准备就绪 - 一切正常。每当按下按钮时,故事 textview 都会发生变化,
我正在扩展 AppCompatActivity 并使用 setSupportActionBar() 设置 ActionBar。 标题设置有点困惑。 如果我这样做 - Toolbar toolbar =
我知道这个问题已经有各种版本的堆栈溢出,但没有一个能帮助我。它只是行不通 我正在尝试以编程方式更改此处的 UIButtons 标题: override func viewDidLoad() {
我遇到过这样一种情况,在菜单管理器的 Joomla 后端指定的菜单项标题会覆盖以下调用:JFactory::getDocument()->setTitle('Custom title') 文档的标题变
我的代码在文档加载时创建一个 HighCharts 图表,然后其他代码将在用户更改某些设置时更新图表。我使用 chart.setTitle() 命令更改标题,屏幕上的图表更新得很好。 但是当图表导出为
不确定为什么会发生这种情况,但是当我尝试更改 JFrame 上的标题时它没有更新。 JFrame 是静态的,我这样调用它: Assets.frame.setTitle("test"); 我有一段代码,
我一直在修改一个应用程序,它有一个包含很多项目的 ListView 。当我长按一个项目时,它会显示一个带有重命名、删除和其他选项的菜单。这个 contextMenu 有一个标题,使用从项目中获取的字符
我在我的工具栏中使用了这两种方法: toolbar.setTitleTextColor(getResources().getColor(R.color.ColorPrimary));
我的 collapintoolbar 不是很好用.. collapsingToolbarLayout.setTitle 仅在折叠完成后起作用。我尝试在更改 fragment 时设置它。 当我更改 fr
我正在尝试根据来自 API 的 JSON 响应更新按钮的标题。 JSON 请求以及按钮标题的设置发生在我的 View Controller 中的 viewDidLoad 中,但按钮的标题直到我单击按钮
我正在使用 arc4random 创建一个测验来随机化我收到的问题。我想知道如何随机选择哪个答案出现在哪个按钮上。下面是一些代码 函数随机化(){ var RandomNumber = arc
我正在尝试添加一个数字,当您将鼠标悬停在 chrome 扩展图标上时,该数字将显示,并且该数字将随着脚本运行而改变。但是,当我添加 chrome.browserAction.setTitle({
我有一个间接继承自 MainScreen 的类,并且 setTitle(string) 不起作用。以下是我的层次结构: public class Class1 extends MainScreen {
我创建了一个滑动选项卡 Activity ,我正在尝试动态更改应用栏的标题。但无论我做什么,它似乎都不起作用!这是我的 MainActivity.java: public class MainActi
我是一名优秀的程序员,十分优秀!