Opening a new screen from callback 7.1.1

What MCU/Processor/Board and compiler are you using?

ttgo v1 2020 watch (esp32 with tft screen via spi)

What LVGL version are you using? 7.1.1. (since lilly go hasnt ported 8x)

What do you want to achieve? call a new screen from a call back function

What have you tried so far? reading documentation on 7.1.1

Code to reproduce

Add a code snippet which can run in the simulator. It should contain only the relevant code that compiles without errors when separated from your main code base.

The code block(s) should be formatted like:

#define LILYGO_WATCH_2020_V1
#define LILYGO_WATCH_LVGL  
#include <LilyGoWatch.h>
int myVar_width = 480;
int myVar_height = 270;

const int vib = 4;

bool button_status = false ;
int buttonstate = 0;
int button_press_current_status = 0;
int button_press_last_status = 0;

bool auto_del = true;

TTGOClass *ttgo;
static void go_to_sleep(lv_obj_t *screen_1, lv_event_t event){
    esp_deep_sleep_start();} 
  

static void load_page_2(lv_obj_t *screen_2, lv_event_t event){
  lv_scr_load_anim(screen_2, LV_SCR_LOAD_ANIM_OVER_LEFT, 10, 10,auto_del); 
  lv_scr_load(screen_2);
}

static void load_page_1(lv_obj_t *screen_1, lv_event_t event){
  lv_scr_load_anim(screen_1, LV_SCR_LOAD_ANIM_OVER_RIGHT, 10, 10,auto_del);
  lv_scr_load(screen_1); 
  
}

static void event_handler(lv_obj_t *obj, lv_event_t event)
{
   if (event == LV_EVENT_CLICKED) {
        Serial.printf("Clicked\n");
        digitalWrite(vib,HIGH);
        delay(250);
        digitalWrite(vib,LOW);}
      
    else if (event == LV_EVENT_VALUE_CHANGED) {
        Serial.printf("Toggled\n");
        digitalWrite(vib,HIGH);
        delay(250);
        digitalWrite(vib,LOW);}
}

void setup()
{ 
    pinMode(vib,OUTPUT);
    pinMode(36,INPUT);
    Serial.begin(115200);

    ttgo = TTGOClass::getWatch();
    ttgo->begin();
    ttgo->openBL();
    ttgo->lvgl_begin();
    ttgo->tft->init(TFT_BLACK);
    ttgo->tft->setRotation(2);
    
    esp_sleep_enable_ext0_wakeup(GPIO_NUM_36,true);
    
    lv_obj_t * screen_2 = lv_obj_create(NULL, NULL);

    LV_IMG_DECLARE(screen_1_background_image);
   
    lv_obj_t * screen_1 = lv_obj_create(NULL, NULL); 
    lv_scr_load(screen_1); 

    lv_obj_t *label;

    lv_obj_t *btn1 = lv_btn_create(screen_1, NULL); //create the object button and what screen
    lv_obj_set_event_cb(btn1, event_handler); //assign it a function 
    lv_obj_align(btn1, NULL, LV_ALIGN_IN_TOP_LEFT,5,5); //X,Y coord placement 
    lv_obj_set_size(btn1,70,40);  //button metrics 
    label = lv_label_create(btn1, NULL); //placing and defining
    lv_label_set_text(label, "MENU"); //visual label 

    lv_obj_t *btn2 = lv_btn_create(screen_1, NULL);
    lv_obj_set_event_cb(btn2, event_handler);
    lv_obj_align(btn2, NULL, LV_ALIGN_IN_LEFT_MID, 5, 0);
    lv_obj_set_size(btn2,90,50);
    label = lv_label_create(btn2, NULL);
    lv_label_set_text(label, "CONNECT");

    lv_obj_t *btn3 = lv_btn_create(screen_1, NULL);
    lv_obj_set_event_cb(btn3, event_handler); 
    lv_obj_align(btn3, NULL, LV_ALIGN_IN_BOTTOM_LEFT,5,-5);
    lv_obj_set_size(btn3,80,40);
    label = lv_label_create(btn3, NULL);
    lv_label_set_text(label, "STATUS");

    lv_obj_t *btn4 = lv_btn_create(screen_1, NULL);
    lv_obj_set_event_cb(btn4,go_to_sleep);
    lv_obj_align(btn4, NULL, LV_ALIGN_IN_TOP_RIGHT,45,5);
    lv_obj_set_size(btn4,80,50);
    label = lv_label_create(btn4, NULL);
    lv_label_set_text(label, "SLEEP");

    lv_obj_t *btn5 = lv_btn_create(screen_1, NULL);
    lv_obj_set_event_cb(btn5, event_handler);
    lv_obj_align(btn5, NULL, LV_ALIGN_IN_RIGHT_MID,15,0);
    lv_obj_set_size(btn5,110,50);
    label = lv_label_create(btn5, NULL);
    lv_label_set_text(label, "DISCONNECT");

    lv_obj_t *btn6 = lv_btn_create(screen_1, NULL);
    lv_obj_set_event_cb(btn6, load_page_2); 
    lv_obj_align(btn6, NULL, LV_ALIGN_IN_BOTTOM_RIGHT,55,-5);
    lv_obj_set_size(btn6,70,40);
    label = lv_label_create(btn6, NULL);
    lv_label_set_text(label, "EXIT");

    lv_obj_t *btn7 = lv_btn_create(screen_2, NULL);
    lv_obj_set_event_cb(btn7, load_page_1); 
    lv_obj_align(btn7, NULL, LV_ALIGN_CENTER,0,0);
    lv_obj_set_size(btn7,0,0);
    label = lv_label_create(btn7, NULL);
    lv_label_set_text(label, "BACK");


void loop(){
      lv_task_handler();
    delay(5);} 
}

when i try to call screen 2 it crashes and turns the screen black then goes back to screen 1 could anyone tell me what i did wrong here? thank you in advance