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
它向详细视图控制器显示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:
从它的方法。你应该更全面地描述所有细节:)
但这将工作按钮单击...可以üPLZ告诉我如何处理tableview单元格选择...? – 2014-10-17 11:23:37
@HardikAmal看到我更新的答案 – medvedNick 2014-10-17 11:32:15
我试过这个,但是它说执行后续标识符是不可能的在uiview – 2014-10-17 11:39:48