Description
- I have read this issue template and provided all possible information.
- I'm using CocoaPods and have run
pod update
before filing this issue.
Hardware / Software
Which version of the library were you using?
Answer: 0.0.1
Which version of iOS are you running?
Answer: iOS 11
What model of iOS device were you testing on?
Answer: Simulator
If using CocoaPods, which version of CocoaPods are you on?
Answer: not related
Goals
What is the outcome result you want to achieve with this library?
Answer: We want to add a simple passcode lock when our app is launched and or enters background, we need to remove the cancel button because the passcode is not optional.
Expected Results
What did you expect to happen?
Setting rightAccessoryButton
will remove the cancel button.
Actual Results
Setting rightAccessoryButton
did not remove the cancel button.
Investigation
Currently the initialization flow is:
-initWithStyle:passcodeType
|_ -setUp
|_ -view
|_ -loadView
|_ -viewDidLoad
|_ -setUpAccessoryButtons
The problem begins with line 82: self.view.backgroundColor = [UIColor clearColor];
. self.view
triggers -loadView
and in turn -viewDidLoad
where the heavy view set up takes place. Then when -setUpAccessoryButton
is called at line 175, the if
statement is always true because it's called before the user has a chance to set rightAccessoryButton
. Setting it after initialization has no effect because the logic is under -viewDidLoad
.
In general calling self.view
in -init
should be avoided.