Segue从自定义的UIView这是alertview到UIViewController

问题描述:

我有一个UIViewController按钮,单击该按钮时,一个UIview会变得像alertview一样在其中有tableview.Now选择表格单元格我想继续细节视图 - 控制Segue从自定义的UIView这是alertview到UIViewController

这里的the link到我refered但他们没有工作对我来说

对于alertview我已经使用(https://github.com/kwent/ios-custom-alertview

感谢。

您不应再使用第三方AlertViews。您可以使用随iOS 8 SDK提供的AlertController。

我不知道这个AlertView是如何工作的,但自述文件提到了一个委托。你有没有尝试从委托方法调用segue?

@ yar1vn的回答是正确的,但是,我会更准确地描述你需要做什么。

从您的链接的自定义警报视图具有delegate属性,它应符合协议

@protocol CustomIOS7AlertViewDelegate 

- (void)customIOS7dialogButtonTouchUpInside:(id)alertView clickedButtonAtIndex:(NSInteger)buttonIndex; 

@end 

这意味着你应该实现在UIViewController这个方法。

@interface YourViewController : UIViewController <YourViewController> 

... 

@end 

在.m文件:

@implementation YourViewController 

... 

- (void)customIOS7dialogButtonTouchUpInside:(id)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    [self performSegueWithIdentifier:@"YourSegue" sender:nil]; 
} 

和设置委托创建alertView时:

[alertView setDelegate:self]; 

@"YourSegue"是来自控制器的SEGUE

在h文件

它向详细视图控制器显示alertView。

我不同意,如果你的部署目标是iOS的7(这是合理的),因为你应该使用UIAlertController,你不应该使用的iOS 8的新功能

编辑:

,如果你想从上表视图电池接头推出SEGUE,你应该叫[self performSegueWithIdentifier:@"YourSegue" sender:nil]从的tableView的委托方法-tableView:didSelectRowAtIndexPath:

我假设你已经设置当前视图控制器的tableView的DataSource和委托,因此添加到您的视图控制器

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    [self performSegueWithIdentifier:@"YourSegue" sender:nil]; 
} 

编辑2:

虽然设置了UIView不如授人是不是最好的方法,我们可以处理它:)

我看到两个解决方案:

首先是将控制器作为属性添加到您的视图中,如下所示:

@interface YourView : UIView <UITableViewDelegate, UITableViewDataSource> 

@property (nonatomic, weak) YourViewController *parentController; 

... 

地方(大概在-viewDidLoad)将此属性设置为

youViewInstance.parentController = self; 

和考虑的委托方法调用

[self.parentController performSegueWithIdentifier:@"YouSegue" sender:nil] 

第二个是简单地设定控制器的tableView的委托,并调用performSegue:从它的方法。你应该更全面地描述所有细节:)

+0

但这将工作按钮单击...可以üPLZ告诉我如何处理tableview单元格选择...? – 2014-10-17 11:23:37

+0

@HardikAmal看到我更新的答案 – medvedNick 2014-10-17 11:32:15

+0

我试过这个,但是它说执行后续标识符是不可能的在uiview – 2014-10-17 11:39:48