我有警报,警报显示后,我想呈现一个不同的viewFinder。 doSomething()函数被触发," TEST"已打印,但未显示新的取景器。我错过了什么?
警报
Id - Reference
1 - ST1
2 - ST2
内容功能doSomething()
public class SchoolContext : DbContext
{
public DbSet<Student> Student { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Student>()
.Property(b => b.Id)
.ValueGeneratedOnAdd();
modelBuilder.Entity<Student>()
.Property(b => b.Reference)
.HasComputedColumnSql("[Id]")
.ValueGeneratedOnAdd();
}
}
答案 0 :(得分:5)
取消视图控制器时,视图控制器上的完成块不会触发。它在视图控制器完成呈现时触发(例如,它已完成viewDidAppear
)。
老实说,我希望这会崩溃,因为你在警报仍然存在的时候试图出现。
在任何情况下,在尝试呈现下一个View Controller之前,您需要等到UIAlertController
被解雇。
您可以在OK
操作的处理程序中执行此操作:
let alert = UIAlertController(title: "Sorry", message: "Booked out.",
preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title: "OK", style:
UIAlertActionStyle.default, handler: doSomething))
self.present(alert, animated: true, completion: nil)
...
func doSomething(action:UIAlertAction) {
/// present the next VC here
}