Comments (4)
Hi, I added this for when the bulletin appeared, see if this can help you:
#47
from bulletinboard.
This feature shipped with the version 2.0.0-beta.3
of the library. You now can set a presentationHandler
and a dismissalHandler
on the item to handle these events. These are called during the transition in BLTNManager
.
Thanks again for your suggestion!
from bulletinboard.
@alexaubry is there a way to set a dismissal handler on the BLTNItemManager
itself, so it get called when the bulletinController
is dismissed?
It would be helpful to do some task only once with bulletinController, instead handling each case with each item..
Thank you
from bulletinboard.
There is not a way in the current version of the framework.
But you can accomplish something similar if you are willing to configure your code in a particular way. I conform to this protocol, handle all button press actions within each BLTNPageItem, and then explicitly close the the BLTNItemManager with either displayPageError() or closeBulletinBoard(). Every Page has a custom init() that takes a BulletinPageResult completion block. When Pages create other Pages, they pass the completion block along. Any Page can terminate the manager, and a single call will be made to the completion. It spits out a Bool, but you could modify it to return an enum or whatever you like.
typealias BulletinPageResult = (Bool) -> ()
protocol CustomBulletinPage where Self : BLTNPageItem {
var errorTitle: String { get }
var completion: BulletinPageResult? { get }
func displayPageError(msg: String, closeBulletin: Bool)
func closeBulletinBoard(_ result: Bool)
}
extension CustomBulletinPage {
func enableCustomDismissalHandler() {
self.isDismissable = true
self.dismissalHandler = { _ in
self.completion?(false)
}
}
func displayPageError(msg: String, closeBulletin: Bool = true) {
let alertView = AlertController(title: errorTitle, message: msg, preferredStyle: .alert)
alertView.addAction(UIAlertAction(title: "OK", style: .default) { alertAction in
if closeBulletin {
self.closeBulletinBoard(false)
}
})
self.manager?.present(alertView, animated: true)
}
func closeBulletinBoard(_ result: Bool) {
if let manager = self.manager {
manager.dismissBulletin(animated: true)
} else {
DDLogError("Unable to dismiss BulletinBoard with nil manager")
}
completion?(result)
}
}
from bulletinboard.
Related Issues (20)
- UIKitCore con < iOS 11 HOT 2
- 4.1.1 and 4.1.2 Blurview is clipped at the bottom of iPhone running iOS 13.6 HOT 5
- Xcode 12 - Double-quoted include in framework header, expecting angle-bracketed instead HOT 1
- iPad: do not show centered on the screen but on the bottom
- Add an option for manually setting dark mode on/off HOT 1
- Swift Compiler Warning: Cannot match several associated values at once HOT 3
- Crash on BulletinCloseButton HOT 1
- Crash when dismissing bulletin board HOT 2
- Swift: Buttons not working HOT 9
- Landscape mode HOT 1
- Add dismissHandler to BLTNItemManager
- Adjust tableView height when keyboard appears HOT 2
- SwiftUI life cycle example
- How to add textfield ? HOT 3
- Documentation & Youtube Video Links Broken. HOT 1
- SwiftUi support
- Could not find module 'BLTNBoard' for target 'x86_64-apple-ios-simulator'; found: arm64, arm64-apple-ios-simulator, at: .../Build/Products/Debug-iphonesimulator/BLTNBoard.swiftmodule HOT 1
- Wrong title will be used after set alternativeButtonTitle
- Background color for alternativeButton? HOT 1
- Corner Radius for BLTNPageItem.image
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bulletinboard.