我有两个segue's导致相同viewController.有2个按钮viewController使用2个segue 连接到同一个按钮.在那viewController我需要检查点击了哪个按钮.所以实际上我需要检查使用/预制的segue.我如何在viewControllers类中检查这个?我知道有prepareForSegue方法,但是我不能将它用于我的目的,因为我需要把它放在prepareForSegue2个按钮所在的类中,我不希望它在那里,但我想在viewControllers课堂上因为我需要访问它并在该类中设置一些变量.
我想用这个跟踪索引UIPageViewController.每当我刷卡我需要index++或index--.无论何时向后或向后滑动,都会调用此委托方法:
- (void)pageViewController:(UIPageViewController *)pvc didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
// If the page did not turn
if (!completed)
{
// You do nothing because whatever page you thought
// the book was on before the gesture started is still the correct page
return;
}
// I want to check here whenever the page was swiped back or further
}
Run Code Online (Sandbox Code Playgroud)
如果用户向后或向后滑动,我该如何检查此方法?我知道有2个DataSource方法"viewControllerAfterViewController"和"viewControllerBeforeViewController",但我无法检查页面转换是否已完成(我可以在上面的方法中执行此操作)任何想法我怎么知道用户是否向后滑动或进一步以上方法?
我正在使用UIAlertView但我收到以下错误消息:
*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'textFieldIndex(0)超出了文本字段数组的范围'
然而,textFields在我UIAlertView和我从来没有访问它们...
这是我的代码:
alertNewVersion = [[UIAlertView alloc] initWithTitle: @"Update"
message: @"There is a new version"
delegate: self
cancelButtonTitle:@"OK"
otherButtonTitles:@"Cancel",nil];
[alertNewVersion setAlertViewStyle:UIAlertViewStyleDefault];
alertNewVersion.tag = 1;
[alertNewVersion show];
Run Code Online (Sandbox Code Playgroud)
但是,当我将" delegate:self" 更改为" "时,delegate:nil它不会因错误而崩溃,但是当然我的委托功能不起作用......那么问题是怎么回事?
编辑:
第二个UIAlertView:
- (IBAction)startPushed:(id)sender {
message = [[UIAlertView alloc] initWithTitle:@"test."
message:nil
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"OK", nil];
[message setAlertViewStyle:UIAlertViewStyleLoginAndPasswordInput];
[[message textFieldAtIndex:1] setSecureTextEntry:NO];
[[message textFieldAtIndex:0] setPlaceholder:@"xx"];
[[message textFieldAtIndex:1] setPlaceholder:@"xxx"];
message.tag = 2;
[message show];
}
Run Code Online (Sandbox Code Playgroud)
代表方法:
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if(alertView.tag == 1){ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用协议使用segue传回数据.我正在回答这个问题:如何在撤消Segue时将信息传回iOS?
所以我已经做了:
PageScrollViewController.h
@protocol MyDataDelegate <NSObject, UIPageViewControllerDelegate>
- (void)recieveData:(NSString *)theData;
@end
Run Code Online (Sandbox Code Playgroud)
我还添加了属性:
@property (nonatomic,weak) id<MyDataDelegate> delegate;
Run Code Online (Sandbox Code Playgroud)
ContainerViewController.h
#import "PageScrollViewController.h"
@interface ContainerViewController : UIViewController <MyDataDelegate>
//...
Run Code Online (Sandbox Code Playgroud)
ContainerViewController.m
- (void)recieveData:(NSString *)theData {
//Do something with data here
}
Run Code Online (Sandbox Code Playgroud)
在这里我被困住了:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
//Get a handle on the view controller about be presented
PageScrollViewController *secondViewController = segue.destinationViewController;
if ([PageScrollViewController isKindOfClass:[PageScrollViewController class]]) {
PageScrollViewController.delegate = self;
}
}
Run Code Online (Sandbox Code Playgroud)
该行 PageScrollViewController.delegate = self;给出了一个错误:在'PageScrollViewController'类型的对象上找不到属性'委托',但我确实将它添加为属性并合成它...
我在故事板中使用UIPageViewController,我想在屏幕底部创建一个带有标签的栏.所以类似于导航栏,当你从UIPageViewController切换页面时,它总是保持在那里.但是在我的故事板上,我无法在PageViewController上删除视图或标签,我该如何实现?例:

我正在使用NSData来存储来自网页的XML.是否可以检查NSData是否包含<?xml version="1.0"?>?
NSURL *url = [NSURL URLWithString:link];
NSData *data = [NSData dataWithContentsOfURL:url];
Run Code Online (Sandbox Code Playgroud)