I have a view in my iOS app that displays an error if there is no internet connection. Upon detecting a working internet connection, the page will automatically refresh. Is there any point to having a refresh button on this error page?
Yes. Think of it as a way to evoke some sort of response for the user. It should only take a few seconds to realize that somethings not happening. Real life scenario: If I call you and you don't pick up I still hear a ringtone. If I call and you don't pick up I can hang up and call again. Calling again is like your refresh button. It's just another way to allow me to feel like I'm reaching my goal sooner.
If you do not wish to give the user this redundant option you will find that they will lose interest and think that something is wrong. When they think something is wrong and you have not communicated the problem to them you have now caused them to no longer trust you or your product. So providing a refresh button will be a great way to let the user know that something is in the works until they get their desired result.
Yes there is.
Urgent usage and the sense of control
From a user point of view, the fact that the page automatically refreshes may not clear.
Even if you do make it clear (by providing a message such as "This page will automatically refresh once a connection is detected"), within the context of urgent usage (and even outside it), providing such a button will give users an increased sense of control over the automatic behaviour of the system.
To give one example, the London underground network now have WiFi on each station platform, but not in between (the tunnels). Many users, like myself, are in a form of a race once reaching a station - first re-connect to the WiFi (which would normally mean going to the Settings app - which in itself is the same case as in with your app and may not be justified but psychologically driven), then switch an to the relevant app and perform whatever action they wish. Often, this means refreshing this feed or another, like in IM applications like WhatsApp. Normally, you only get connected by the times the doors shut, and then you have a mere few seconds to switch to the application and press refresh.
Even if the app gets notified when a connection is re-established, providing a refresh button to the users will provide a sense of control (although in such case it is illusive), which is a good usability practice.
The sense of vs. real empowerment
Consider the following statement:
The British government considers to conduct a nation-wide survey amongst its citizens, asking for their preferences of tax distribution amongst various government departments (education, military, transport, etc.). Each citizen will be asked to put a percentage next to each department, all sum to 100%. The government asserts that it may not account for the survey results. Are you in favour of such survey?
Despite the fact that the government states they may not account for the survey results, it is likely that most people will be in favour of the idea - which gives a sense of empowerment, although not necessary a real one.
It is a similar case with the refresh button - although it may gain nothing otherwise, it shall give users a sense of control.
What is the rate at which the page checks for a network connection? It is common to do the Gmail approach where you check for a network connection by a Fibonacci sequence in order to decrease server requests. If you are checking every 3 seconds (based on half of the average attention span of 8 seconds), then maybe I would not include a refresh button, but show the app is trying to reach a server. In all other cases, I would include it. This way, you are empowering users and giving them freedom to control the application, not the other way around.