Wuyx
2017-01-20 cb73c258ba8634a628dd72872a7bb741e9a35256
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*
 *  Copyright (c) 2014, Facebook, Inc.
 *  All rights reserved.
 *
 *  This source code is licensed under the BSD-style license found in the
 *  LICENSE file in the root directory of this source tree. An additional grant
 *  of patent rights can be found in the PATENTS file in the same directory.
 *
 */
 
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
 
#import <Bolts/BFAppLinkReturnToRefererView.h>
 
@class BFAppLink;
@class BFAppLinkReturnToRefererController;
 
/*!
 Protocol that a class can implement in order to be notified when the user has navigated back
 to the referer of an App Link.
 */
@protocol BFAppLinkReturnToRefererControllerDelegate <NSObject>
 
@optional
 
/*! Called when the user has tapped to navigate, but before the navigation has been performed. */
- (void)returnToRefererController:(BFAppLinkReturnToRefererController *)controller
            willNavigateToAppLink:(BFAppLink *)appLink;
 
/*! Called after the navigation has been attempted, with an indication of whether the referer
 app link was successfully opened. */
- (void)returnToRefererController:(BFAppLinkReturnToRefererController *)controller
             didNavigateToAppLink:(BFAppLink *)url
                             type:(BFAppLinkNavigationType)type;
 
@end
 
/*!
 A controller class that implements default behavior for a BFAppLinkReturnToRefererView, including
 the ability to display the view above the navigation bar for navigation-based apps.
 */
@interface BFAppLinkReturnToRefererController : NSObject <BFAppLinkReturnToRefererViewDelegate>
 
/*!
 The delegate that will be notified when the user navigates back to the referer.
 */
@property (nonatomic, weak) id<BFAppLinkReturnToRefererControllerDelegate> delegate;
 
/*!
 The BFAppLinkReturnToRefererView this controller is controlling.
 */
@property (nonatomic, strong) BFAppLinkReturnToRefererView *view;
 
/*!
 Initializes a controller suitable for controlling a BFAppLinkReturnToRefererView that is to be displayed
 contained within another UIView (i.e., not displayed above the navigation bar).
 */
- (instancetype)init;
 
/*!
 Initializes a controller suitable for controlling a BFAppLinkReturnToRefererView that is to be displayed
 displayed above the navigation bar.
 */
- (instancetype)initForDisplayAboveNavController:(UINavigationController *)navController;
 
/*!
 Removes the view entirely from the navigation controller it is currently displayed in.
 */
- (void)removeFromNavController;
 
/*!
 Shows the BFAppLinkReturnToRefererView with the specified referer information. If nil or missing data,
 the view will not be displayed. */
- (void)showViewForRefererAppLink:(BFAppLink *)refererAppLink;
 
/*!
 Shows the BFAppLinkReturnToRefererView with referer information extracted from the specified URL.
 If nil or missing referer App Link data, the view will not be displayed. */
- (void)showViewForRefererURL:(NSURL *)url;
 
/*!
 Closes the view, possibly animating it.
 */
- (void)closeViewAnimated:(BOOL)animated;
 
@end