点击某个按钮时,我需要刷新view controller
。简单地激活viewDidLoad()
似乎不适用于我需要做的事情。但是,当我离开view controller
然后再回到它时,它似乎完美无缺?
如何刷新/重新加载view controller
,就好像我已经离开它然后回到它而没有真正离开它?
答案 0 :(得分:15)
无论您在viewDidLoad
撰写的代码是什么,请在viewWillappear()
中添加。这将解决您的问题。
答案 1 :(得分:10)
您不应手动调用viewDidLoad方法, 相反,如果您想重新加载任何数据或任何UI,可以使用:
override func viewDidLoad() {
super.viewDidLoad();
let myButton = UIButton()
// When user touch myButton, we're going to call loadData method
myButton.addTarget(self, action: #selector(self.loadData), forControlEvents: .TouchUpInside)
// Load the data
self.loadData();
}
func loadData() {
// code to load data from network, and refresh the interface
tableView.reloadData()
}
每当您想重新加载数据并刷新界面时,您都可以调用self.loadData()
答案 2 :(得分:2)
这可能有点晚了,但您是否尝试拨打loadView()
?
答案 3 :(得分:1)
在Swift 4中:
self.view.layoutIfNeeded()
答案 4 :(得分:0)
答案 5 :(得分:0)
每次打开视图时,它将加载ViewWillAppear
。上面是图片视图控制器生命周期的链接。
viewWillAppear()-在将视图控制器的内容视图添加到应用程序的视图层次结构之前调用。使用此方法可以触发在屏幕上显示内容视图之前需要进行的所有操作。尽管有名称,只是因为系统调用了此方法,所以不能保证内容视图将变为可见。该视图可能被其他视图遮挡或隐藏。此方法只是表明内容视图即将添加到应用的视图层次结构中。
答案 6 :(得分:0)
答案 7 :(得分:-2)
Swift 5.2
我发现仅 方法可以工作并动态刷新视图,其中按钮的可见性已更改为:-
class DPWHDataset(Dataset):
def __init__(self, mean=None, std=None, phase=None, dataset=None):
self.data = dataset
self.mean = mean
self.std = std
self.phase = phase
self.transforms = get_transforms(phase, mean, std)
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
image_name = self.data[idx]
image_path = image_prefix + image_name + ".jpg"
mask_path = binary_mask_prefix + image_name + "_mask.png"
mask = cv2.imread(mask_path, 0)
print(image_path)
# image = np.array(Image.open(image_path))
# mask = np.array(Image.open(mask_path))
image = cv2.imread(image_path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
mask = create_channel_mask(mask)
# augmented = self.transforms(image=image, mask=mask)
# image = augmented['image']
# mask = augmented['mask']
image = torchvision.transforms.ToTensor()(image)
image = torchvision.transforms.Normalize(mean=self.mean, std=self.std)(image)
mask = torchvision.transforms.ToTensor()(mask)
return image, mask
这可能是一个不好的做法,但希望有人会发表评论。