I’ve had it several times now that I cannot connect to a public wifi because the captive just doesn't show up. this can be super annoying when you just want to get some things done but instead of being productive you spend minute over minute to fix this issue and make the captive show up again..
However, there are two simple steps that can help you out in this misery:
You can try to got to http://captive.apple.com/hotspot-detect.html to trigger the captive page manually. When this doesn’t work for you as it did for me the a more advanced step to connect to public wifi
Got to Settings → Network → click the three dots “...” → Locations → Change Locations → press “+” and enter a random name (e.g. “captive”)
Now wait for a few seconds and the captive should show up to connect to the public wifi