ios – 是否可以从UIView上的UITableViewCell转到另一个视图

ios – 是否可以从UIView上的UITableViewCell转到另一个视图,第1张

概述Xcode 4.6.1 iOS 6使用故事板 我的问题是这个 我在UIViewController中的UIView上有一个带有动态原型单元的UITableView(它本身嵌入在导航控制器中),我想从一个特定的单元格转到另一个视图 (在任何人建议我应该使用UITableViewController之前,我确实在UIView上有其他东西,所以我出于某种原因设置了这种方式.) 现在我不知道如何创建seg Xcode 4.6.1 iOS 6使用故事板

我的问题是这个

我在UIVIEwController中的UIVIEw上有一个带有动态原型单元的UItableVIEw(它本身嵌入在导航控制器中),我想从一个特定的单元格转到另一个视图

(在任何人建议我应该使用UItableVIEwController之前,我确实在UIVIEw上有其他东西,所以我出于某种原因设置了这种方式.)

现在我不知道如何创建segue

如果我从原型UItableVIEwCell拖动来创建一个segue,所有生成的单元格会自动调用segue – 当我只需要一个这样做时.这是正常的行为,如果我通过从UItableVIEwController拖动创建segue并调用[self performSegueWithIDentifIEr:….来自我的dIDSelectRowAtIndexPathMethod,因此只有我想要执行此segue的特定单元格触发它,我会解决这个问题.

在这种情况下我没有UItableVIEwController – 只是UIVIEw上的UItableVIEw,它是UIVIEwController子类的一部分

我一直在玩,我刚刚发现我无法从UItableVIEw拖动 – 不允许你这样做,所以这是一个deadend.

我似乎唯一的选择就是从UIVIEwController中拖出来

所以我试过了,当然XCode在执行segue线上抛出一个错误,告诉我我…没有’LocationTV’的可见界面声明了选择器performSegueWithIDentifIEr. LocationTv是我的tablevIEw子类.

在这种情况下尝试调用新视图的正确方法是什么

谢谢

西蒙

解决方法 首先,segues只能在UIVIEwControllers之间使用.因此,如果您想在同一视图控制器上的两个视图之间执行segue,那是不可能的.

但是如果你想在两个视图控制器之间执行一个segue,那么segue应该由一个视图(在第一个视图控制器内)的动作触发,这是可能的.

所以在你的情况下,如果我理解了这个问题,你想在点击自定义UIVIEw内的UItableVIEw的第一个单元格时执行一个segue.最简单的方法是在您的自定义UIVIEw上创建一个委托,该委托将由您的UIVIEwController实现,当调用委托方法时,该委托包含自定义UIVIEw,您应该执行segue,这是一个简短的示例:

YourCustomVIEw.h

@protocol YourCustomVIEwDelegate <NSObject>-(voID)pleasePerformSegueRightNow;@end@interface YourCustomVIEw : UIVIEw {   UItableVIEw *thetableVIEw; //Maybe this is a IBOutlet}@property(weak,nonatomic) ID<YourCustomVIEwDelegate>delegate;

YourCustomvIEw.m

@implementation YourCustomvIEw@ synthesise delegate;//make sure that your table vIEw delegate/data source are set properly//other methods here maybe- (UItableVIEwCell *)tableVIEw:(UItableVIEw *)tableVIEw cellForRowAtIndexPath:(NSIndexPath *)indexPath {    if(indexPath.row == 0) {  //or any other row if you want       if([self.delegate respondsToSelector:@selector(pleasePerformSegueRightNow)]) {          [self.delegate pleasePerformSegueRightNow];       }    }}

YourtableVIEwController.h

@interface YourtableVIEwController : UIVIEwController <YourCustomVIEwDelegate> {  //instance variables,outlets and other stuff here}

YourtableVIEwController.m

@implementation YourtableVIEwController-(voID)vIEwDIDLoad {  [super vIEwDIDLoad];   YourCustomVIEw *customVIEw = alloc init....  customVIEw.delegate = self;}-(voID)pleasePerformSegue {  [self performSegueWithIDentifIEr:@"YourSegueIDentifIEr"];}

您可以为委托创建任何方法,也可以自定义行为,这只是一个如何做到这一点的简单示例.

总结

以上是内存溢出为你收集整理的ios – 是否可以从UIView上的UITableViewCell转到另一个视图全部内容,希望文章能够帮你解决ios – 是否可以从UIView上的UITableViewCell转到另一个视图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1075807.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存