我想知道它们的不同之处.什么时候我可以打电话
[self dismissViewControllerAnimated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
什么时候打电话
[self.navigationController popViewControllerAnimated:YES];
Run Code Online (Sandbox Code Playgroud)
根据apple的文档:dismissViewControllerAnimated意味着"解除接收者提供的视图控制器".但我总是不能通过这种方法解雇视图控制器.
如何使UILabel文本可编辑UILongPressGestureRecognizer.因此,在长按时它会转换为可编辑状态,并且在从uilabel移除焦点后,它变为只读.
我正在使用一些第三方软件来帮助使用Xcode 4.3.2编写iPad应用程序.该软件是开源的,通常设置为使其代码与开发人员为应用程序编写的任何代码一起编译.因为我在很多地方使用该软件,所以我决定将其构建为iOS模拟器的静态库.
我能够构建库,并将一个应用程序转换为链接到该库,而不是编译原始源代码.但是,当我在模拟器上运行应用程序时,我收到一条错误,指出发送到实例的无法识别的选择器.
我已经验证该程序是否成功使用了部分静态库.但是,有一段代码试图在对象上调用方法,以及发生故障的方法.被调用的方法实际上并未在该对象的接口中定义.而是在另一个模块中提供,该模块定义该对象类的类别.正确包含该模块的头文件,编译器应该能够找到类别方法并将其应用于对象,但在运行时,会出现上述错误.
我使用'nm'命令来验证静态库中是否存在类别方法.以下是输出示例:
nm libStaticLibrary.a | grep categoryMethod
00000130 t -[SomeClass(Category) categoryMethod:]
0000354c s -[SomeClass(Category) categoryMethod:].eh
Run Code Online (Sandbox Code Playgroud)
人们对如何使这个库与所需的应用程序正常工作有什么想法?
我正在使用此函数在Xcode 4.3中切换视图.
[self performSegueWithIdentifier:@"NextView" sender:self];
Run Code Online (Sandbox Code Playgroud)
我想在页面之间传递一些参数.我怎样才能做到这一点?
properties uiviewcontroller ios uistoryboard uistoryboardsegue
我有一个以下代码UIStoryBoardSegue来做一个卷曲推送segue.
(void) perform {
UIViewController *src = (UIViewController *) self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;
[UIView transitionWithView:src.navigationController.view duration:1
options:UIViewAnimationOptionCurveEaseInOut | UIViewAnimationOptionTransitionCurlUp
animations:^{
[src.navigationController pushViewController:dst animated:NO];
}
completion:NULL];
}
Run Code Online (Sandbox Code Playgroud)
它工作正常,但是当我点击应用程序上的"后退"按钮时,它会向后滑动而不是向下滑动.因为这是推送,我需要弹出当前的视图控制器而不是添加另一个segue.
我如何做一个"卷曲的流行音乐"?
我CABasicAnimation在AnnotationView图层中添加了一个模拟在mapview上移动的汽车.
这工作正常,直到我在动画进行过程中尝试放大或缩小mapview.
我发现在缩放mapview时动画注释视图会消失!!
我想这可能是由于在缩放mapview时删除了关联动画对象的图层.
我尝试通过缩放时停止动画来解决这个问题.但结果并不好.汽车似乎跳到了目标点.
有人有这方面的想法吗?
任何人都知道在缩放mapview时如何让动画仍然运行?
我想知道我应该用什么代替
animationWithFrames:delay:
Run Code Online (Sandbox Code Playgroud)
和
actionWithAnimation:restoreOriginalFrame:
Run Code Online (Sandbox Code Playgroud)
因为他们发出警告说他们已经被弃用了.
我正在开发一个主要使用的iOS应用程序UITableView.它从服务器检索文章页面.我们有25000篇文章; 所以我实现了一个pull-to-refresh和无限滚动来遍历标题集.下载的内容使用核心数据保留; NSFetchedResultsController用于自动更新UITableView.
但是,我已经实现了无限滚动两个方向; 上和下.由于用户将允许向下滚动25000篇文章标题,因此我必须删除用户已滚动的文章.如果用户向上滚动,我必须重新插入当前标题之上的标题.这样做,我在文章集合中有一个移动的窗口.
我使用部分和标题按日期组显示我的文章.
问题是因为无限滚动是双向的,所以我经常删除或在表格的较高位置添加文章.事实上,我必须改变与之相关的谓词NSFetchedResultsController.
滚动被混乱的结果.我已经让它跳回到它应该是ish的位置.它不是很好,因为它是一个跳跃(动画:NO),如果我把动画打开,它会在回到正确的位置之前四处走动.而且这个位置并不完全是应该的位置.
我不确定我是否解释了我的问题.我认为问题可能在于我使用的方式,UITableView但我不确定如何使用它来使这更好.
干杯
我无法连接数据源并将故事板中的表视图的出口委托给我的自定义委托类.我想将这些表函数委托给另一个类.在故事板中,有一些我从根本上误解了关于委托,出口和布线的事情.
背景
我有一个UIViewController包含a UIPickerView等等的视图UITableView.
我已经达到了我UIViewController太大的程度,我想将与表相关的函数移到另一个类中.
我创建了以下类来包含那些表方法,如numberOfSectionsInTableView:.
@interface ExerciseTableDelegate : NSObject <UITableViewDelegate, UITableViewDataSource>
@property (strong, nonatomic) ExerciseDataController *dataController;
@end
Run Code Online (Sandbox Code Playgroud)
我曾想过在我的课堂上提到上面的课程 UIViewController
@interface ExerciseViewController : UIViewController <UIPickerViewDataSource, UIPickerViewDelegate>
{
UIPickerView *exercisePicker;
}
@property (strong, nonatomic) IBOutlet ExerciseTableDelegate *tableDelegate;
@end
Run Code Online (Sandbox Code Playgroud)
我希望在故事板中,当我将表视图中的一个数据源或委托出口拖到UITableViewController它上面时,它将使我能够连接到我的委托类.它没有.
然后我尝试在故事板中创建一个对象,为它提供类ExerciseTableDelegate.然后我可以将表视图委托拖动到对象,但这不是我在我设置的对象AppDelegate.
我的应用代表
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
ExerciseViewController *rootViewController = (ExerciseViewController *)[[navigationController viewControllers] objectAtIndex:0];
ExerciseTableDelegate *tableDelegate = [[ExerciseTableDelegate alloc]init];
ExerciseDataController *dataController …Run Code Online (Sandbox Code Playgroud) 在我的项目中,我曾经MPMoviePlayerController从http网址流式传输视频.它播放全屏.播放视频时,如果点击"完成"按钮,视频会停止并消失,但问题是; 如果你捏合关闭视频屏幕,视频屏幕会消失但仍然播放,视频声音继续播放.
我试图检测退出全屏通知并手动停止视频,但它不起作用.我的moviePlayerDidExitFullScreen方法没有调用.
要控制,如果我以正确的方式收到通知,我试图获得另一个通知:MPMoviePlayerPlaybackStateDidChangeNotification,它正在工作.它在视频启动时调用该方法.
我搜索了许多论坛和Apple文档,但我找不到足够的信息.
这是我打开全屏视频并检测退出全屏的代码:
- (void)openFullVideo
{
NSString* path = @"http://trtvizyon.mysys.com/test/leyla_ile_mecnun.mp4";
NSURL *fileURL = [NSURL URLWithString:path];
MPMoviePlayerController *player = [[MPMoviePlayerController alloc] initWithContentURL:fileURL];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerDidExitFullScreen:) name:MPMoviePlayerDidExitFullscreenNotification object:nil];
player.controlStyle = MPMovieControlStyleDefault;
player.movieSourceType = MPMovieSourceTypeStreaming;
[self.view addSubview:player.view];
[player setFullscreen:YES animated:YES];
[player play];
}
- (void) moviePlayerDidExitFullScreen:(id)sender {
NSLog(@"moviePlayerDidExitFullScreen");
}
Run Code Online (Sandbox Code Playgroud) ios ×10
objective-c ×3
uistoryboard ×2
uitableview ×2
animation ×1
deprecated ×1
iphone ×1
mkmapview ×1
properties ×1
uilabel ×1