小编Mah*_*dra的帖子

ios Handoff在launchOptions中缺少NSUserActivity?

我在我们的应用程序中实现了Handoff,当应用程序在前台或后台运行时,它适用于Web到应用程序切换,反之亦然.

但是,如果应用程序没有运行,那么如果用户从web启动应用程序到应用程序切换,则在launchOptions字典中,我得到了UIApplicationLaunchOptionsUserActivityDictionaryKey,但缺少对活动的引用.

看截图:

在此输入图像描述

正如你所看到的,我只获得了ID NSUserActivity.这是iOS 9中的错误吗?

有没有办法通过使用id来获取对活动的引用?

编辑,这是代码,虽然我不认为这是相关的

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    if (launchOptions && [[launchOptions allKeys] containsObject:UIApplicationLaunchOptionsUserActivityDictionaryKey]) {
        __block NSUserActivity *activity;

        NSDictionary *userActivityDictionary = [launchOptions objectForKey:UIApplicationLaunchOptionsUserActivityDictionaryKey];
        if (userActivityDictionary) {
            [userActivityDictionary enumerateKeysAndObjectsUsingBlock:^(id  _Nonnull key, id  _Nonnull obj, BOOL * _Nonnull stop) {
                if ([obj isKindOfClass:[NSUserActivity class]]) {
                    activity = obj;
                }
            }];
        }

        //app was started by URL (deep linking), check parameters
        if (activity) {
            NSURL *url = activity.webpageURL;
            //resume from URL
        }
    }

    return …
Run Code Online (Sandbox Code Playgroud)

objective-c ios handoff nsuseractivity

6
推荐指数
1
解决办法
477
查看次数

使用 UIViewControllerTransitionCoordinator animateAlongsideTransition 方法

我有一个 ViewController 可以说ViewControllerA,还有一个 ViewController 可以说ViewControllerB

ViewControllerBViewControllerA通过使用自定义转换以模态方式呈现。

在视图控制器A中:

-(void)buttonClicked...
{
  ViewControllerB * controller = [[ViewControllerB alloc] init];
  [controller setModalPresentationStyle:UIModalPresentationCustom];
  controller.transitioningDelegate = self;
  [self presentViewController:controller animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

在 ViewControllerA 中 -

#pragma mark - UIViewControllerTransitioningDelegate

- 

(id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented
                                                                      presentingController:(UIViewController *)presenting
                                                                          sourceController:(UIViewController *)source 
{

   FadeInWithPopAnimator* fadeInAnimator = [[FadeInWithPopAnimator alloc] init];
   return fadeInAnimator;
 }
Run Code Online (Sandbox Code Playgroud)

我有一个名为的自定义 Animator 类FadeInWithPopAnimator,它实现了transitionDuration 和animationTransition 方法。

ViewControllerB我想在过渡动画开始 0.2 秒后,在呈现的视图控制器上对几个视图进行动画处理。

我已经阅读了在线文档,看起来使用过渡协调器是正确的方法。但我应该把代码放在哪里呢?

1)在调用presentViewController时ViewControllerA

2)在动画师类中?

3)在viewWillAppear中ViewControllerA

我尝试了一些方法,但它没有给我结果,而且很难找到例子。

objective-c ios ios7 ios-animations

5
推荐指数
1
解决办法
8711
查看次数

Facebook iOS SDK没有FBSDKApplicationDelegate类及其方法

我在应用程序中的Facebook登录中使用,因此我已使用cocoapods在我的应用程序中安装了FBSDKLoginKit。

我遵循了Facebook文档并完成了除此以外的所有步骤FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

该方法application(application, didFinishLaunchingWithOptions: launchOptions)在FBSDKLoginKit中不可用。

facebook ios swift

5
推荐指数
2
解决办法
1600
查看次数

Swift 如何检测推送通知权限何时从系统设置更改?

用户安装应用程序并点击“不允许”并拒绝推送通知。当应用程序处于活动状态时,用户转到系统设置并授予推送通知,然后返回到应用程序。

当应用程序将要激活并调用注册推送通知时,如何检测设置通知权限已更改?

push-notification apple-push-notifications ios swift

5
推荐指数
1
解决办法
1万
查看次数

打开 iOS 应用程序后“continue userActivity:”方法未被调用 - Firebase 动态链接

我已成功集成 Firebase 动态链接,当我点击动态链接时,我的应用程序正在打开。

我面临的问题是从动态链接打开应用程序后,continue userActivity:应该调用方法,但没有任何反应。

我已经检查了所有可能的事情,但没有意识到这个问题。

我已经为此搜索了 SO,但没有一个答案对我有帮助。

我的代码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

  GIDSignIn.sharedInstance().clientID = kGoogleSignInClientId
  FBSDKApplicationDelegate.sharedInstance().application(application, didFinishLaunchingWithOptions: launchOptions)

 // DynamicLinks.performDiagnostics(completion: nil)

  FirebaseApp.configure()

  return true
}

func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

  if url.absoluteString.contains(kFBAppId) {

    return FBSDKApplicationDelegate.sharedInstance().application(app, open: url, options: options)

  }

  if let dynamicLink = DynamicLinks.dynamicLinks().dynamicLink(fromCustomSchemeURL: url) {
    print(dynamicLink.url ?? URL(string: "test") as Any)
    return true
  }

    return GIDSignIn.sharedInstance().handle(url, sourceApplication: …
Run Code Online (Sandbox Code Playgroud)

ios appdelegate swift firebase-dynamic-links

3
推荐指数
2
解决办法
2277
查看次数

App Store - 在您提交此应用以供审核之前,管理员必须在“应用隐私”部分提供有关应用隐私惯例的信息

帐户持有人更新了 App Store 的 App 隐私部分,但当我提交 App 以供审核时,它仍然向我显示上述错误。

帐户持有人是否需要在应用隐私中输入任何其他信息或流程?

在此处输入图片说明

ios app-store-connect

2
推荐指数
1
解决办法
1509
查看次数

Realm Swift中的一对多关系怎么样?

我是Realm SWift的新手.我希望在Swift3.0中实现一对多的关系

我有文件夹列表,每个文件夹可能有子文件夹列表.所以我创建了两个像下面这样的relam文件.

文件夹领域类

 class FolderRealm: Object {

    dynamic var folderName : String?
    dynamic var createdDate : Date?
    let subFolders = List<SubFolderRealm>()
 }
Run Code Online (Sandbox Code Playgroud)

SubFolder领域类

 class SubFolderRealm: Object {

   dynamic var subFolderName : String?
   dynamic var createdDate : Date? 

 }
Run Code Online (Sandbox Code Playgroud)

对于添加文件夹,我使用了以下代码行

let folder : FolderRealm  = FolderRealm()
folder.folderName = searchBarObj.text!
folder.createdDate = Date()
 try! realm.write {
   realm.add(folder)
 }
Run Code Online (Sandbox Code Playgroud)

我有疑问,如何将子文件夹数据添加到文件夹和子文件夹领域?

realm ios swift3

1
推荐指数
1
解决办法
4590
查看次数

如何在Swift中使用NSLayoutConstraint在UITextField中添加填充?

我有一个子类UIView,我有,UITextField并希望移动占位符文本一点点.我NSLayoutConstraint用于设置子视图的位置和大小.我已创建UIView并添加它leftView,UITextField但它崩溃说明"视图层次结构没有为约束做好准备".以下是我的代码:

class MasterView: UIView {

let searchTextField = UITextField()
let paddingView = UIView()

override init(frame: CGRect) {
    super.init(frame: frame)

    searchTextField.placeholder = "Search videos"
    searchTextField.translatesAutoresizingMaskIntoConstraints = false
    paddingView.translatesAutoresizingMaskIntoConstraints = false
    searchTextField.leftView = paddingView
    searchTextField.leftViewMode = UITextFieldViewMode.Always

    self.addSubview(searchTextField)

}

// Gets called when using storyboard

required init?(coder aDecoder: NSCoder) {
    fatalError("init(coder:) has not been implemented")
}

override func layoutSubviews() {
    self.addConstraint(NSLayoutConstraint(item: searchTextField, attribute: NSLayoutAttribute.TopMargin, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.TopMargin, …
Run Code Online (Sandbox Code Playgroud)

uitextfield ios nslayoutconstraint swift

0
推荐指数
1
解决办法
8249
查看次数

目标C中的类型转换失败

这里的类型铸造成功

id object = [NSMutableArray array];
NSURLConnection *urlCon = (NSURLConnection*)object;

if ([urlCon isKindOfClass:[NSURLConnection class]])
    NSLog(@"urlCon is NSURLConnection");
else if ([urlCon isKindOfClass:[NSMutableArray class]])
    NSLog(@"urlCon is NSMutableArray"); // this is called
Run Code Online (Sandbox Code Playgroud)

实际上因为'object'是类型NSMutableArray,所以类型转换NSURLConnection应该失败.但它是成功的,urlCon仍然指向NSMutableArray,那么TypeCasting有什么用?

casting objective-c ios

0
推荐指数
1
解决办法
1357
查看次数

使用 RxSwift 和 RXCocoa 验证按钮单击时的所有文本字段

我是 RxSwift 和 RxCocoa 的新手,我正在学习它。

我想在按钮单击时验证所有文本字段,并根据验证我需要向用户显示警报消息。

验证成功后,我需要在表中插入记录。

参考以下代码...

var result = txtFname.rx.text
    result.asObservable().subscribe(onNext: { text in
        if text!.isEmpty {
            self.showAlert(msg: "Plese enter first name.")
            self.txtFname.becomeFirstResponder()
        }
    }).disposed(by: disposeBag)

    result = txtLname.rx.text
    result.asObservable().subscribe(onNext: { text in
        if text!.isEmpty {
            self.showAlert(msg: "Please enter last name.")
            self.txtLname.becomeFirstResponder()
        }
    }).disposed(by: disposeBag)

    result = txtEmail.rx.text
    result.asObservable().subscribe(onNext: { text in

        if text!.isEmpty {
            self.showAlert(msg: "Please enter email id.")
            self.txtLname.becomeFirstResponder()
        }
    }).disposed(by: disposeBag)

   //need to check here if all fields are valid or not 
   //if all fields …
Run Code Online (Sandbox Code Playgroud)

uibutton ios swift rx-swift rx-cocoa

0
推荐指数
1
解决办法
2798
查看次数