我有一些ViewControlls用于设置,信息等。 用户可以关闭应用程序设置ViewController打开(我的意思是弹出ViewController)。 当收到本地通知时,我希望应用程序转到根视图控制器并关闭任何弹出窗口。
答案 0 :(得分:0)
修改的 这个答案只有在您尝试返回的VC不需要任何特殊初始化时才有用,因为此方法会创建一个新实例。牢记这一点。
尝试此方法,它将删除视图控制器堆栈中的任何内容,并在屏幕上显示特定的视图控制器:
library(rhandsontable)
library(shiny)
# add a sparkline chart
DF$chart = sapply(1:10, function(x) jsonlite::toJSON(list(values=rnorm(10))))
rhandsontable(DF, rowHeaders = NULL) %>%
hot_col("chart", renderer = htmlwidgets::JS("renderSparkline"))
editTable <- function(DF, outdir=getwd(), outfilename="table"){
ui <- shinyUI(fluidPage(
titlePanel("Edit and save a table"),
sidebarLayout(
sidebarPanel(
helpText("Shiny app based on an example given in the rhandsontable package.",
"Right-click on the table to delete/insert rows.",
"Double-click on a cell to edit"),
wellPanel(
h3("Table options"),
radioButtons("useType", "Use Data Types", c("TRUE", "FALSE"))
),
br(),
wellPanel(
h3("Save"),
actionButton("save", "Save table")
),
wellPanel(
textOutput('result')
)
),
mainPanel(
rHandsontableOutput("hot")
)
)
))
server <- shinyServer(function(input, output) {
values <- reactiveValues()
## Handsontable
observe({
if (!is.null(input$hot)) {
DF = hot_to_r(input$hot)
} else {
if (is.null(values[["DF"]]))
DF <- DF
else
DF <- values[["DF"]]
}
values[["DF"]] <- DF
})
output$hot <- renderRHandsontable({
DF <- values[["DF"]]
if (!is.null(DF))
rhandsontable(DF, useTypes = as.logical(input$useType), stretchH = "all")
})
## Save
observeEvent(input$save, {
finalDF <- isolate(values[["DF"]])
saveRDS(finalDF, file=file.path(outdir, sprintf("%s.rds", outfilename)))
})
})
## run app
runApp(list(ui=ui, server=server))
function(input, output)
return(invisible())
}
( DF <- data.frame(Col1=1:10, Col2=runif(10), stringsAsFactors = FALSE))
editTable(DF)
}
只需确保故事板的名称正确,并确定该故事板中视图控制器的标识符。