我正在使用显示一些按钮的 iCarousel。但是,如何在点击按钮时转到另一个 View ?
我已经有了这个代码:
- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
{
return 10;
}
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
UIButton *button = (UIButton *)view;
if (button == nil)
{
UIImage *image = [UIImage imageNamed:@"page.png"];
button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0f, 0.0f, image.size.width, image.size.height);
[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[button setBackgroundImage:image forState:UIControlStateNormal];
button.titleLabel.font = [button.titleLabel.font fontWithSize:50];
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
}
return button;
}
- (void)buttonTapped:(UIButton *)sender
{
NSInteger index = [carousel indexOfItemViewOrSubview:sender];
//Action
}
点击按钮时如何进入另一个 View ?我也可以在这里使用 prepareForSegue 方法吗?
感谢您的帮助!
最佳答案
当然,您只需从第一个 viewController 拖动并创建一个 segue 到第二个,然后将其命名为“segue0”。
-(void)buttonTapped:(UIButton*)sender
{
NSInteger *index = [carousel indexOfItemViewOrSubview:sender];
if(index = 0)
{
[self performSegueWithIdentifier:@"segue0", sender:self];
}
//else if etc.., or better yet, ditch the if, do the checking in 'prepare' as explained below
}
-(void)prepareForSegue:(UIStoryboardSegue*) segue sender:(id)sender
{
YourNextViewController *nextView = [segue destinationViewController];
//Do stuff to your next view with "nextView"
}
如果它们都进入同一个 viewController,但通过在 prepareForSegue 中发送不同的数据,那么您可以放弃 if 语句
,并发送 sender
而不是 self
作为 [self performSegue..]
中的发件人,并检查 prepareForSegue..
哪个按钮是发件人(或移动您的 NSInteger *index...
行在这里)
关于ios - 如何从 iCarousel 中的按钮创建到另一个 View 的 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18082183/