Add Observer Attachment with airSlate SignNow
Get the robust eSignature capabilities you need from the company you trust
Select the pro platform designed for professionals
Set up eSignature API with ease
Work better together
Add observer attachment, within minutes
Reduce your closing time
Maintain sensitive information safe
See airSlate SignNow eSignatures in action
airSlate SignNow solutions for better efficiency
Our user reviews speak for themselves
Why choose airSlate SignNow
-
Free 7-day trial. Choose the plan you need and try it risk-free.
-
Honest pricing for full-featured plans. airSlate SignNow offers subscription plans with no overages or hidden fees at renewal.
-
Enterprise-grade security. airSlate SignNow helps you comply with global security standards.
Your step-by-step guide — add observer attachment
Using airSlate SignNow’s eSignature any business can speed up signature workflows and eSign in real-time, delivering a better experience to customers and employees. add observer attachment in a few simple steps. Our mobile-first apps make working on the go possible, even while offline! Sign documents from anywhere in the world and close deals faster.
Follow the step-by-step guide to add observer attachment:
- Log in to your airSlate SignNow account.
- Locate your document in your folders or upload a new one.
- Open the document and make edits using the Tools menu.
- Drag & drop fillable fields, add text and sign it.
- Add multiple signers using their emails and set the signing order.
- Specify which recipients will get an executed copy.
- Use Advanced Options to limit access to the record and set an expiration date.
- Click Save and Close when completed.
In addition, there are more advanced features available to add observer attachment. Add users to your shared workspace, view teams, and track collaboration. Millions of users across the US and Europe agree that a solution that brings everything together in a single holistic workspace, is exactly what businesses need to keep workflows working easily. The airSlate SignNow REST API allows you to embed eSignatures into your app, internet site, CRM or cloud. Try out airSlate SignNow and get quicker, easier and overall more effective eSignature workflows!
How it works
airSlate SignNow features that users love
Get legally-binding signatures now!
What active users are saying — add observer attachment
Add observer attachment
what's up everybody welcome back to another video and iOS interview questions today is going to be part two about communication patterns now part one was all about delegates and protocols part two is going to be about notifications and observers if you haven't seen part one on delegates and protocols I recommend going back and watching that I talk about a lot of the basics of communication patterns because today we're just going to build off that and talk about notifications and observers so at a high level what notifications and observers are it takes two parts you have the observer and then the notification so the observer just sitting somewhere in your code waiting to hear this notification and then you put this notification wherever you want the event to happen whether it's in viewdidload of a screen or whatever so that event happens it fires off the message and this observer just waiting to hear that message and then once it hears that message it executes whatever code you want it to again that's a super high level we're going to dive deep into the code right now let's go okay I just want to reiterate I highly recommend you watch part 1 about delegates and protocols I go over a lot of the basics in detail I am going to recap in this video so it can kind of stand on its own but it'll be a much quicker recap assuming that you've already seen the first part of this video series okay so big picture the main difference in these two communication patterns the delegates and protocols and the notifications and observers is delegates and protocols are a one-to-one communication pattern whereas notifications and observers which we're about to see when we dive into the code here is a one-to-many meaning you can have you know five different observers waiting to hear one notification action and they all do five different actions and we'll see that come into play later okay quick project overview again I went through this in detail in the first one but I'll just quickly run through it here we have two screens here when you hit this choose a side button down here this selection screen will pop up modally and then you pick either Imperial a rebel and then this screen will change based on your selections what you'll see at the end of this video let's run it real quick okay so like I said you tap this choose a side button down here the selection screen pops up you can either choose Imperial a rebel right now it's just going to dismiss the screen because this is just the starter project but what we're going to implement is when you tap Imperial this screen here is going to change the show a picture of Darth Vader it's going to change the background color and so forth just like in part 1 of this series our base screen which is the Star Wars screen here all we have here is when you tap the choose button we pop up the selection screen let's go on here and then in the selection screen we're just dismissing it when you tap the buttons that's the basic premise of the starter project pretty simple right now alright let's implement some notifications and observers to change our base screen once we select aside ok so full disclosure this particular functionality is probably best for delegates and protocols but I'm using the same project just to illustrate the difference between delegates of protocols and notifications and observers and really the way I'm going to implement this code is mainly just for illustrative purposes anyway just to give you an idea of how these notifications and observers work okay with that disclaimer out of the way let's get started now the first thing we're going to do is set up our notification key which is a string and these are unique to our notifications I'm going to type them out real quick and explain them more when I'm done okay so how we're going to set this up is we're going to have to post notifications one when the Imperial button is pressed and then one when the rebel button is pressed now I remember like I said the observers are just waiting around to get this notification so we're going to set up some observers that listen for when the darkside button is pressed and for when the light side button is pressed and what we're doing here on lines 11 and 12 is creating a unique identifier for those notifications and because third-party libraries or even Apple itself uses keys like this it's best to uniquely identify it like right now this is my website Shana unko I just like you do in your bundle identifier when you're creating your project it's the same idea here you just want something unique to you and this is a common way to do it and a little side note anytime you define variables like outside of the class it looks like it's kind of a no-man's land this is declaring it globally now you have to be really careful with this for the purpose of this tutorial and to keep things quick we're just going to go ahead and do this here in a real project where you can have a lot of keys for various other things it's nice to create a separate constants file that holds all these but for now this is what we're going to do okay so now that we have this set up in our base screen let's jump over to the selection screen and the selection screen is actually going to be very simple this is where we're just posting the notifications you're going to type Notification Center dot default dot post and it's going to autocomplete and you want to have a name here and there's a couple options you'll see I have highlighted just it just takes in a name and an object and then the one below it takes in a name and object and user info so it is possible to pass information through the notification for our purposes of this tutorial we are just going to get notified of the action again we're just looking for the button press and that's it like I said in more complex projects you can look for the button press and pass specific information that is possible we're not going to do that for now but just know that you can do that so go and hit name and object and you see it takes in the notification name I'm going to pull this out to its own separate variable so let's go and do let name equals notification dot name and then it's a raw value and then you see it takes in a string now this is the string we set up globally over here on our bass screen on lines 11 and 12 okay back to our selection screen so because we are in the Imperial button tapped we want this to be the dark side notification so this is just going to be dark notification key and you should get it auto-completed and the reason I pulled this out into its own variable here on line 18 is so I can just down here just type name it is valid to go ahead and type this whole thing into the where I just type name but I think the co is more readable when you separate it out an object is going to be nails since we're not passing anything in this example okay to run through that real quick again we just created our name variable that's the name of our notification and then here we just do Notification Center and here's the key point dot post this is where we're posting the notification so when the imperial button is tapped we're shooting out the message hey the imperial button has been tapped and then in a little bit here we're going to set up observers in the base ring that are going to listen for that notification but right now we're just posting it so that's fine so we're just going to do basically the same thing down in the rebel button so let's go and copy this and then paste it and the only thing we have to change here we have to change dark notification to light notification key did that and that's all we have to change so now when the rebel button is tapped now we're posting a notification that has the name of the light notification key and then we're going to add some observers that are looking for that one specifically so that's all we have to do in the selection screen we're good to go again in the selection screen we're just sending out the message when the appropriate button is tapped all right back to the base screen where we got some work to do down below our outlets here that I have set up for the starter project let's create two variables in the reason I'm doing this is because you know I had to enter name in that and I wanted shorthand for that we're going to be using that a lot when we add our observers so this is just creating variables so we can just use light and dark throughout the rest of the code it'll be easier okay now one tricky thing we're dealing with observers it's best practice to remove your observers when they're no longer necessary in this case we're going to remove them when the base green is de-allocated from memory so in order to do that we need our D&M method so let's go ahead and do that D init and then we want to do here is a notification center dot default dot remove observer and we're removing from self which is the base screen now the reason you want to do this is because if you don't remove them you're going to have all these observers listening for notifications and it could cause confusion if you have all these left over observers and things are trying to notify it of stuff it's just basically cleaning up after yourself this is one downside of using notification in the servers because it's extra housekeeping you have to remember to do where you don't have to deal with that what delegates and protocols okay so let's start creating our observers I will just do that in a separate function just to keep things nice and neat I'm going to give them myself some space down here okay so func create observers and because I want to demonstrate the one-to-many functionality of notifications and observers we are going to create probably some redundant observers but again it's just for illustrative purposes to really drive the point home so we're going to have a set of light side observers and a set of dark side observers each one of these observer is going to update a different item on the screen so one observer is going to update the character image one observer is going to update the character name and then the others going to update the background color and we're going to do that for the dark side and light side again like I said a little bit redundant code but I really want to drive the point home okay so to add an observer is pretty similar to the post like we did in the selection screen it's just Notification Center dot default dot add observer now there's a couple different options here we're going to do the first one and I'll walk through and so we want to add an observer to self which is the base screen now the selector is what method we want to execute when this observer gets the message so let's pause from our create observers right now and just stub out our three functions that are going to update the UI and this is mainly so I can get some autocomplete action okay so I'm going to fast-forward through some typing and I'll explain it when I'm done here okay as you can see here on line 42 50 here I just have a function called update character image like I said this is just going to change the character from Darth Vader to Luke Skywalker and update name label update background color and we're going to implement code in these functions but right now you'll see here I just wanted the autocomplete so I can make sure this function is correct so for the selector you do hash tag selector keyword and then should autocomplete from here so you want to be on the base screen and then here we want to update character image there you go and then the name remember we named it up here we set these variables the light and dark this is why we did this because we're going to do this a couple times so for right now axis this is our light side version we're going to call this light and then the object is going to be no okay now I'm going to do this five more times for light and dark side I'm going to go back and walk through them again but I'm going to fast-forward through some typing okay and like I said this is pretty redundant but again driving the point home the one-to-many functionality of notifications and observers so back on our selection screen if you look here on the Imperial button tap actually let's do the rebel button tapped so you see Notification Center default post and we're posting the light notification key so what's happening here is as soon as I tap the rebel button we're sending out the message and then on the base screen here we have three things that are listening for that message here in the light side and you can tell because the name blue notification is light which we defined up here on line 20 so these three are the light guys and these three are listening for the dark observer and then what's going to happen this first observer is going to update the character image this other observer is going to update the name label and this third observer is going to update the background color and before we can see that happened let's make sure we call our create observer function here in viewdidload so just down here on line 30 just call create observers that way that happens so right now our observers are working but nothing is happening in these codes because right now it's executing these functions but you can see they're empty functions so let's throw some code in here to fix that now because this function has a notification that's being passed through this notification is going to have a property of name which again is either going to be light or dark which we defined up here on 20 and 21 so I'm going to differentiate between which notification I received based on the name of that notification so here's how I'm going to do that I'm going to do that using ternary operators if you're not familiar with that this will be another side lesson that you're going to get here so first of all I'm gonna set up my Bowl so let is light equals notification dot name here's the name property again it's either going to be light or dark equals equals light so what this line is doing here is it's setting a boolean called is light and if notification dot name is equal to light then this is going to be true if it's not equal to light then it's going to be false so that's how I'm going to determine if it was a light notification or a dark notification okay so now that I have that I'm going to set my image based on this boolean here using a ternary operator so let image equals and this is how these work so you do the boolean first is light and then a question mark and then you do your true value and then your false value separated by a colon so if is light is true I want this to be my luke image so Bui image named and then it's just called Luke and again because these files are in our project we can go and force and wrap it so this is what I want if is light equals true if is light equals false I want you i image named and then we want this one to be Vader and then force unwrap that so now we're setting our image variable so now all we need to do is do main image view image equals image ok so again to recap sitting our is like boolean based on whether it was a light or dark notification then we're also setting our image based on if it's a lighter dark notification and then we're setting our image view to that image that we set I'm going to fast forward these next two because it's very similar code in fact I'm gonna do a lot of copy and pasting but I'll run through it when I'm done okay here in 54 to 67 again very similar stuff setting the boolean based on the notification name if it is light if it is light the name is going to be a string of Luke Skywalker if it's not light it's going to be a string of Darth Vader and then we're setting the name label dot text to that name and again same thing down here in the background color if it is light the color is going to be cyan if it's not light the color is going to be red for dark side and then we're setting the view background color to that color again I know redundant code don't bash me in the comments again just driving the point home on this one too many notifications to observers so again selection screen we're having a dark dark sight post here then we have a light side post based on what buttons pressed and then here in the base screen when the light side button is pressed we have these three observers waiting for that one notification to act accordingly so you hit the light button these three observers fire off their appropriate functions here over here on the right and then these functions fire off in act accordingly to update the UI so all right we should be good to go let's go ahead and test this out okay so here choose a side let's go ahead and hit Imperial and you see our background is now red we have the Darth Vader we have the Darth Vader name label choose a side again hit the rebels we have Luke Skywalker with the name Luke Skywalker and go back to Vader so what's going on here it's like I said when you press this Imperial button that notification is firing off and our observers are listening and updating this UI accordingly based on the functions we set ok so that's the gist of notification observers and if you remember we could have passed all that information like the background color the image in the name we could have set up an array and pass that array through the notification I mean that's one way to do it but again this way demonstrates the one-to-many that I wanted to illustrate because that is the key difference between delegates protocols and notification and observers again delegate the protocol is one-to-one notification and observers one-to-many now the downside of notification observers as you can see when you're doing the one-to-many it can get pretty messy pretty quickly and not to mention if you had you know we're only dealing with three observers for notification imagine if you had 10 now you can kind of see where that gets pretty hard to try keep track of through your code and maybe some weird unexpected stuff will happen because you have so many notifications and observers and it just kind of becomes this tangled web that's hard to keep track of so that's the downside to using notifications and observers and just like anything in code these communication patterns are tools delegate some protocols one tool notifications in observer is another and you have to use the right tool for the right job again if you have a tight coupling a one-to-one communication between two views delegates and protocols is your answer if you're in our scenario we need to communicate too many objects from one action then notifications and observers is probably the answer and as with anything in development this can go much much deeper but if you've understood these two videos that should be more than enough for your interview question now you know how to use notifications and observers and if you saw part one hopefully delegate some protocols as well and between these two videos they should give you enough information to crush this question on any interview all right if you found this at all useful go and hit subscribe I put out new videos all the time
Show moreFrequently asked questions
What is the difference between a signature stamp and an electronic signature?
What do I need to sign a PDF electronically?
How do I eSign a PDF on a PC?
Get more for add observer attachment with airSlate SignNow
- Decline countersign Affidavit Templates
- Comment signed electronically Motion Graphics Design Contract Template
- Notarize eSign Restaurant Business Plan Template
- Allow signatory Candidate Resume
- State countersign Confidentiality Agreement Template
- Reveal mark Supply Agreement
- Warrant eSignature Job Application for Teachers
- Ask signature Cleaning Service Contract Template
- Propose initials Sales Invoice Template
- Solicit autograph Car Lease Agreement Template
- Merge Horse Bill of Sale countersign
- Move Training Record sign
- Populate Catering Proposal Template electronically signing
- Boost Compromise Agreement Template eSign
- Underwrite Commercial Photography Contract eSignature
- Assure Quality Incident Record autograph
- Request Leader Training Application Template for Summer Camp electronic signature
- Insist Service Contract Template signed electronically
- Tell Service Invoice electronically sign
- Save tenant EIN
- Display guest required
- Mediate heir us state
- Buy Drama Scholarship Application template signatory
- Size Hotel Receipt Template template initials
- Display claim template eSign
- Inscribe Directors Agreement template esigning
- Subscribe Product Quote template digisign
- Build up Construction Joint Venture Agreement Template template electronic signature