- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将我的 indexPath.row
移动到不同的 View Controller - pageView
标签。这是我尝试过的:
[cell.nav addTarget:self action:@selector(naviguate:) forControlEvents:UIControlEventTouchUpInside];
cell.nav.tag=indexPath.row;
-(void)naviguate:(id)sender {
UIButton *theButton=(UIButton *)sender;
NSLog(names[theButton.tag]);
pageView *secondViewController = [[pageView alloc] initWithNibName:@"secondViewController" bundle:nil];
secondViewController.name.text = names[theButton.tag];
}
为什么这不会更改 pageView
上的标签文本。我应该怎么做?
Logs 字符串工作正常的地方。
我试过这个:
-(void)naviguate:(id)sender {
[UIView animateWithDuration:0.5
delay:0
options: UIViewAnimationOptionCurveEaseOut
animations:^{
[_tableView setFrame:CGRectMake(0, 569, _tableView.frame.size.width, _tableView.frame.size.height)];
}
completion:^(BOOL finished){
[self performSegueWithIdentifier:@"link" sender:self];
}];
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UIButton *theButton=(UIButton *)sender;
if([segue.identifier isEqualToString:@"link"])
{
UINavigationController *navController = (UINavigationController *)segue.destinationViewController;
pageView *controller = (pageView *)navController.topViewController;
controller.name.text= names[theButton.tag];
}
}
它被调用的地方
[cell.nav addTarget:self action:@selector(naviguate:) forControlEvents:UIControlEventTouchUpInside];
cell.nav.tag=indexPath.row;
但我收到错误 [pageView topViewController]: unrecognized selector sent to instance ... Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[pageView topViewController]: unrecognized selector sent to instance
你知道为什么吗?
与:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
UIButton *theButton=(UIButton *)sender;
if([segue.identifier isEqualToString:@"link"])
{
pageView *controller = (pageView *)segue.destinationViewController;
controller.name.text= names[theButton.tag];
}
}
我收到错误 '-[ImagesTableViewController tag]: unrecognized selector sent to instance
WHich 因为 names[theButton.tag]
崩溃了怎么办?
最佳答案
这一行:
pageView *secondViewController = [[pageView alloc] initWithNibName:@"secondViewController" bundle:nil];
创建一个新的 View Controller ,然后这一行:
secondViewController.name.text = names[theButton.tag];
设置其中一个 View 的属性(这是错误的,因为 View 还没有加载,而且乱用另一个 vc 的 View 是不明智的)。但这并不重要,因为这一行:
}
销毁新分配的 vc,它将永远不会再被听到。
修复的方法是从起始 View Controller 使用 segue,并在 prepareForSegue:
中设置目标属性,或者推送或呈现 secondViewController。要么:
// if we're in a navigation controller
[self.navigationController pushViewController:secondViewController animated:true];
// or, if there's no container
[self presentViewController:secondViewController animated:true completion:nil];
请记住,无论您决定如何呈现 secondViewController,都不要尝试直接设置其中一个 subview 的状态。相反,给它一个像 NSString *theStringMyLabelShouldShow
这样的属性,并从呈现的 vc 中设置它。第二个 VC 可以在 viewWillAppear:
self.name.text = self.theStringMyLabelShouldShow;
关于ios - 使用 addTarget : action: forControlEvents: 将 indexPath.row 移动到标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23850679/
我有以下代码,并且从未调用 doneButton 处理程序。知道可能出了什么问题吗? 我尝试了许多不同的选择器格式,包括带参数和不带参数的格式。我还通过手动设置 userInteractionEnab
我有一个简单的 View V 和 View Controller C。 Controller 调用一个单独的类 X 来构建一个 Web View 和一个用于关闭 Web View 的按钮。 我实例化类
我最近对 cellForRowAtIndexPath 中的 UITableViewCell 使用 addTarget() 有点怀疑。我也很想知道从 UITableViewCell 监听按钮事件的最
我面临这个问题:我想为运行时创建的按钮分配一个 Action ,我正在使用这个自定义类: import UIKit class SubViewManager: NSObject { var butto
在我的 UITableViewCell 中,我有一个按钮。我想通过在 cellForRowAtIndexPath 方法中传递多个参数来向它添加操作。 func tableView(tableView:
我在向按钮的选择器添加参数(以编程方式创建)时遇到问题。我浏览了互联网并尝试了一些方法,但我无法弄清楚。 我使用以下行创建一个按钮: NSString *someThing = [[NSString
一旦点击按钮,我正在实现一些要调用的函数,但函数的主体不会被调用。 这是我的代码,它演示了我需要做什么 let editProfileFollowButton: UIButton = {
我是初学者,不是英语家庭。所以我的英语很差...如何将参数传递到我的函数中.. 这是我的代码: @IBAction func newitem(sender: AnyObject) { ...
我不认为缺少调用的原因是我在扩展中执行此操作,但我想不出任何其他原因导致此功能不起作用: 扩展名: extension UIControl { func function(controlEve
我在表格 View 单元格中有一个标签。标签有文本文本的结尾有一个按钮,该按钮代表用户喜欢的按钮。一切正常,但问题是 hitForLike 未触发。按钮单击事件未触发。我错过了什么吗 var titl
我在 Swift 中遇到选择器问题。我有以下代码行: let actionTarget="onPress:" button.addTarget(self, action: Selector(actio
在我的项目中,我有带有 3 个按钮的单元格的表格 View 。当我为他们添加目标操作时,它不起作用。 为了避免与其他项目的不良交互,我创建了一个干净的项目并尝试将 addTarget 添加到 Tabl
我正在尝试为我的 tableView 中的某些项目添加下载按钮。我已经创建了自定义单元格类并添加了标签和按钮 socket ,一切都在显示信息,甚至按钮也显示了它应该在的位置。 我正在尝试添加目标,但
View Controller : @implementation PaiLifeViewController @synthesize detail = _detail; - (void)viewDi
请有人告诉我,如何在 swift 2.2 的 addtarget 函数中发送附加参数?示例: button.addTarget(self, action: #selector(classname.my
我尝试找出为什么 self 指向 GameViewController 而不是 Answer GameViewController.swift class GameViewController: UI
这只是一个简单的问题,主要是我注意到但很困惑的问题。我过去玩过 addTarget,并注意到如果您动态调用 addTarget,并在按钮上设置相同的目标/操作两次 - 使用 addTarget 方法。
刚刚学习在我的 .m 文件中使用代码添加操作,我的第一次尝试抛出异常并使应用程序崩溃。 这是一个身份验证脚本,我希望它能与我的网络服务器通信。下面是相关代码(这都在.m文件里,很简单的.h文件): .
通过循环,我将 UIImageView 添加到 UIScrollView 中,我需要添加一个额外的参数 addTarget,这样当我单击时,我可以记录索引。 [imageButton addTarge
为什么我的事件没有在 foo 中触发并冒泡到 bar? var foo = Y.one(".foo"), bar = Y.one(".bar"); foo.addTarget(bar); fo
我是一名优秀的程序员,十分优秀!