register method
Implementation
void register(int index) {
// the caller in initState() or dispose() is not in the order of first dispose and init
// so we can't assert there isn't a existing key
// assert(!widget.controller.tagMap.keys.contains(index));
widget.controller.tagMap[index] = this;
}